Exemple #1
0
        protected override void Form_Init()
        {
            ListViewItem li;

            DataRow[] row;



            //툴 이름 바인딩 T01~T25
            for (int i = 0; i < vari.tool_max_lenth; i++)
            {
                li = new ListViewItem();
//				li.SubItems.Add(string.Empty);
                li.SubItems.Add((i + 1).ToString());

                row = vari.dt_tool_name.Select($"CODEVALUE = 'T{i+1:D2}'");

                if (row.Length > 0)
                {
                    li.SubItems.Add(Fnc.obj2String(row[0]["CODEVALUENAME"]));
                }
                else
                {
                    li.SubItems.Add(string.Empty);
                }

                lstToolName.Items.Add(li);
            }

            lstToolName_SelectedIndexChanged(null, null);

            //툴 이름 바인딩 N01~N03
            for (int i = 0; i < vari.rst_max_lenth; i++)
            {
                li = new ListViewItem();
                //li.SubItems.Add(string.Empty);
                li.SubItems.Add((i + 1).ToString());

                row = vari.dt_rst_name.Select($"CODEVALUE = 'N{i+1:D2}'");

                if (row.Length > 0)
                {
                    li.SubItems.Add(Fnc.obj2String(row[0]["CODEVALUENAME"]));
                }
                else
                {
                    li.SubItems.Add(string.Empty);
                }

                lstRst.Items.Add(li);
            }

            lstRst_SelectedIndexChanged(null, null);
        }
Exemple #2
0
        /// <summary>
        /// 관리테이블을 실행 한다.
        /// </summary>
        /// <param name="mng"></param>
        void mng_Run(DataRow mng)
        {
            string log = "[";
            string a   = Fnc.obj2String(mng["Address"]);

            fnc.stPLCAddress add = new fnc.stPLCAddress(a);
            int add_len          = Fnc.obj2int(mng["Address_Length"]);

            DataRow[] d;
            string    asc      = string.Empty;
            bool      isString = false;

            log += add.ToString();

            if (Fnc.obj2String(mng["ValueType"]).Equals("String"))
            {
                //int x = char.ConvertToUtf32("A", 0);
                isString = true;
                asc      = Fnc.obj2String(mng["Value"]);
            }



            for (int i = 0; i < add_len; i++)
            {
                d = _dtAdd.Select(string.Format("Address = '{0}'", add.ToString()));
                if (d.Length > 0)
                {
                    if (isString)
                    {   //문자열을 주소에 넣어 준다.
                        d[0]["Value"] = fnc.String2AddValue(asc, i * 2, char.ConvertFromUtf32(0).ToString());
                    }
                    else
                    {
                        d[0]["Value"] = Fnc.obj2int(mng["Value"]);
                        if (_dtAdd_Changing)
                        {
                            d[0]["HexValue"] = Fnc.obj2int(mng["Value"]).ToString("X4");
                        }
                    }
                }
                add.Address++;
            }

            if (add_len > 1)
            {
                log += string.Format("~{0}", add.ToString());
            }

            log += string.Format("]=>{0}", mng["Value"]);

            Log_Write(log, enCmdType.MNG, false);
        }
Exemple #3
0
        /// <summary>
        /// Verbose 모드에서 테그 수신 명령을 보낸다.
        /// </summary>
        /// <param name="shtPort">안테나 포트</param>
        private void InventoryRead(short shtPort)
        {
            Byte[] byteData;


            parser.readingPort = shtPort;
            byteData           = (Byte[])parser.ReadInventory();

            clsLog.WLog(string.Format("InventoryRead : {0}", Fnc.Bytes2String(byteData)));

            Send_Packet(byteData);
        }
Exemple #4
0
        /// <summary>
        /// 등록된 어드레스의 값을 int 형태로 가지고 온다.
        /// </summary>
        /// <param name="strAddress"></param>
        /// <returns></returns>
        public int GetValueInt(string strAddress)
        {
            try
            {
                int rtn = Fnc.obj2int(GetValue(strAddress, enPLCValueType.INT).Value);

                return(rtn);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #5
0
        /// <summary>
        /// 로우가 추가 됨
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void _dtAdd_TableNewRow(object sender, DataTableNewRowEventArgs e)
        {
            _dtAdd.AcceptChanges();

            if (Fnc.isNumeric(Fnc.obj2String(e.Row["Priority"])))
            {
                return;
            }

            var max = _dtAdd.AsEnumerable().Max(p => p["priority"]);

            e.Row["Priority"] = Fnc.obj2int(max) + 1;
        }
Exemple #6
0
        /// <summary>
        /// 설정 로우를확인 - 그룹이 없으면 넣어 준다.
        /// </summary>
        /// <param name="dr"></param>
        private bool row_chk(DataRow dr)
        {
            if (Fnc.obj2String(dr["GroupCode"]).Equals(string.Empty))
            {
                DataRow r = dsSetting.Tables[fnc.GroupTable_Name].Rows[0];
                dr["GroupCode"] = r["GroupCode"];
                dr["GroupName"] = r["GroupName"];

                return(true);
            }

            return(false);
        }
Exemple #7
0
        /// <summary>
        /// 조회 조건 초기화
        /// </summary>
        private void Search_Conditon_Reset()
        {
            string date = DateTime.Now.ToString("yyyy-MM-dd");

            dtFrom.Value = Fnc.String2Date(date + " 00:00:00", Fnc.enDateType.DateTime);
            dtTo.Value   = Fnc.String2Date(date + " 23:59:59", Fnc.enDateType.DateTime);

            inpCartype.ComboBoxSelectIndex = 0;
            inpPono.Value   = string.Empty;
            inpTrimin.Value = string.Empty;
            inpVin.Value    = string.Empty;
            inpResult.ComboBoxSelectIndex = 0;
        }
Exemple #8
0
        /// <summary>
        /// Hex값을 Ascii 값 기준으로 문자열로 변경 하여 준다.
        /// </summary>
        /// <param name="hex"></param>
        /// <returns></returns>
        public static string HexToString(string hex)
        {
            string rtn = string.Empty;
            int    val;

            while (!hex.Equals(string.Empty))
            {
                val  = HexToInt(Fnc.StringGet(ref hex, 2));
                rtn += Convert.ToChar(val);
            }

            return(rtn);
        }
Exemple #9
0
        private void btnXlsLoad_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog dial = new OpenFileDialog();

                dial.Multiselect = false;
                dial.ShowDialog();

                string strFileName = dial.FileName;

                dial.Dispose();

                if (strFileName == string.Empty)
                {
                    return;
                }

                strFileName = strFileName.Replace(@"\\", @"\");

                //strFileName = @".\chasys.xls";



                OleDB clsOle = new OleDB(OleDB.enProvider.Excel, strFileName, string.Empty, string.Empty, string.Empty);

                using (DataSet ds = clsOle.dsExcute_Query("select orderdate, partcode, target_cnt from [order$]"))
                {
                    if (ds.Tables[0].Rows.Count < 1)
                    {
                        return;
                    }

                    lstPlan.Items.Clear();
                    ResetInput();

                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        lstPlan.Items.Add(new ListViewItem(new string[] { (lstPlan.Items.Count + 1).ToString(),
                                                                          Fnc.obj2String(dr["ORDERDATE"]),
                                                                          Fnc.obj2String(dr["PARTCODE"]),
                                                                          Fnc.obj2String(dr["TARGET_CNT"]) }));
                    }
                }
            }
            catch (Exception ex)
            {
                clsLog.WLog_Exception("btnXlsLoad", ex);
                Fnc.ShowMsg(this, ex.Message, string.Empty, frmMessage.enMessageType.OK);
            }
        }
Exemple #10
0
        /// <summary>
        /// 컨트롤 크기 및 위치 정볼를 불러온다.
        /// </summary>
        /// <param name="setting_object"></param>
        /// <param name="propertyName"></param>
        public static void control_Size_Load(object setting_object, string propertyName, Form frm)
        {
            try
            {
                //폼내용은 '/*폼이름:컨트롤정보들...*/' 구성
                string value = Fnc.obj2String(Function.DFnc.Property_Get_Value(setting_object, propertyName));

                value = getSettingString(value, frm.Name);

                //컨트롤정보는 '컨트롤이름:top:left:너비:높이;' 로구분
                string[] cInfo = value.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                string[] cValue;
                Control  C;

                foreach (string info in cInfo)
                {
                    cValue = info.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
                    if (cValue.Length < 5)
                    {
                        continue;
                    }

                    try
                    {
                        C = frm.Controls[cValue[0]];

                        if (C == null)
                        {
                            continue;
                        }

                        C.Top    = Fnc.obj2int(cValue[1]);
                        C.Left   = Fnc.obj2int(cValue[2]);
                        C.Width  = Fnc.obj2int(cValue[3]);
                        C.Height = Fnc.obj2int(cValue[4]);

                        if (C.GetType().Equals(typeof(SplitContainer)))
                        {
                            ((SplitContainer)C).SplitterDistance = Fnc.obj2int(cValue[5]);
                        }
                    }
                    catch
                    {
                        continue;
                    }
                }
            }
            catch
            {
            }
        }
Exemple #11
0
        /// <summary>
        /// (펑션)기본(master) 파일 경로를 조회 한다.
        /// </summary>
        /// <param name="conn"></param>
        /// <returns></returns>
        public static string fnc_filepath_get(MsSQL.strConnect conn)
        {
            MsSQL sql = new MsSQL(conn);

            string qry = @"select filename
from [master].[dbo].sysfiles
where fileid = 1";

            DataTable dt = sql.Excute_Query(qry, "").Tables[0];

            string[] path = Function.system.clsFile.FileSplitPath_Name(Fnc.obj2String(dt.Rows[0]["filename"]));

            return(path[0]);
        }
Exemple #12
0
            public stColorCellInfo(Cell _cell, Color _changedCellColor)
            {
                cell = _cell;
                if (_cell == null)
                {
                    value = null;
                }
                else
                {
                    value = Fnc.obj2String(_cell.Value);
                }


                changedCellColor = _changedCellColor;
            }
Exemple #13
0
        /// <summary>
        /// 데이터셑에 데이터테이블을 추가한다.
        /// </summary>
        /// <param name="ds"></param>
        /// <param name="tableName"></param>
        /// <param name="Add_Cols"></param>
        /// <param name="Add_Types"></param>
        /// <param name="dValue"></param>
        /// <returns></returns>
        private bool DataTable_Add(DataSet ds, string tableName, string[] Add_Cols, string[] Add_Types, object[] dValue)
        {
            if (dsSetting.Tables.IndexOf(tableName) >= 0)
            {
                return(false);
            }

            DataTable grp = new DataTable(tableName);

            Fnc.DataTable_ColumnsAdd(grp, Add_Cols, Add_Types, dValue);

            ds.Tables.Add(grp);

            return(true);
        }
Exemple #14
0
        public static Control LoadingImage_Set(Control Parent_Control, int size = 60, System.Drawing.Image img = null)
        {
            PictureBox pic = null;

            if (Parent_Control.Parent == null)
            {
                return(null);
            }

            foreach (Control c in Parent_Control.Parent.Controls)
            {
                if (Fnc.obj2String(c.Tag).Equals("LoadingImage"))
                {
                    pic = c as PictureBox;
                    break;
                }
            }

            if (pic == null)
            {
                pic          = new PictureBox();
                pic.SizeMode = PictureBoxSizeMode.StretchImage;
                if (img == null)
                {
                    pic.Image = Function.resIcon16.loading_004;
                }
                else
                {
                    pic.Image = img;
                }
            }

            pic.Width   = size;
            pic.Height  = size;
            pic.Tag     = "LoadingImage";
            pic.Visible = true;

            Parent_Control.Enabled = false;

            Parent_Control.Parent.Controls.Add(pic);

            pic.Left = Parent_Control.Left + (Parent_Control.Width / 2) - (pic.Width / 2);
            pic.Top  = Parent_Control.Top + (Parent_Control.Height / 2) - (pic.Height / 2);

            pic.BringToFront();

            return(pic);
        }
Exemple #15
0
        private void ReceiveAck(byte[] bytData)
        {
            if (!isStatusChecking)
            {
                return;
            }

            strAck += encoding.GetString(bytData);

            if (Fnc.inStr(strAck, strEtx) < 3)
            {
                return;
            }

            isStatusChecking = false;
        }
Exemple #16
0
        private async void btnSendChatMsgPhone_Click(object sender, EventArgs e)
        {
            if (grdChat.SelectedRows.Count < 1)
            {
                SetMessage(true, "채팅 방을 선택하여 주십시요.", false);
                return;
            }

            foreach (DataGridViewRow vr in grdChat.SelectedRows)
            {
                string id = Fnc.obj2String(vr.Cells["id"].Value);


                await _client.SendMessageToChat(enChatsInfoType.id, id, txtMsgChat.Text.Trim());
            }
        }
Exemple #17
0
        /// <summary>
        /// 그리드 뷰에서 특정 값으로 로우를 찾는다
        /// </summary>
        /// <param name="gv"></param>
        /// <param name="SearchColumn"></param>
        /// <param name="SearchValue"></param>
        /// <param name="StartRowIndex"></param>
        public static int GridView_SelectRowBySearch(GridView gv, string SearchColumn, string SearchValue, int StartRowIndex)
        {
            int     Stidx = 0;
            int     edidx = gv.DataRowCount;
            int     rst   = -1;
            bool    loop  = true;
            DataRow dr;


            if (edidx > StartRowIndex && StartRowIndex >= 0)
            {
                Stidx = StartRowIndex;
            }

            while (loop)
            {
                for (int idx = Stidx; idx < gv.DataRowCount; idx++)
                {
                    dr = gv.GetDataRow(idx);

                    if (Fnc.obj2String(dr[SearchColumn]).Equals(SearchValue))
                    {
                        rst = idx;
                        gv.FocusedRowHandle = idx;
                        break;
                    }
                }

                if (rst >= 0)
                {
                    break;
                }

                if (Stidx != 0)
                {
                    edidx = Stidx - 1;
                    Stidx = 0;
                }
                else
                {
                    loop = false;
                }
            }


            return(rst);
        }
Exemple #18
0
        /// <summary>
        /// 항목삭제..
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdDelete_Click(object sender, EventArgs e)
        {
            DataRow dr = gvSettingList.GetFocusedDataRow();


            if (dr == null)
            {
                return;
            }


            if (Function.clsFunction.ShowMsg(this, "항목 삭제", "선택된 항목을 삭제 하시겠습니까?", frmMessage.enMessageType.YesNo) != DialogResult.Yes)
            {
                return;
            }

            string strUpdateType = Fnc.obj2String(dr["UpdateType"]);

            DataTable dt;

            //세부 설정 테이블 update
            foreach (string i in Fnc.EnumItems2Strings(new enSeverType()))
            {
                dt = dsSetting.Tables[i];


                foreach (DataRow r in dt.Select(string.Format("UPDATETYPE = '{0}'", strUpdateType)))
                {
                    dt.Rows.Remove(r);
                }


                dt.AcceptChanges();
            }


            foreach (DataRow r in dsSetting.Tables["Setting"].Select(string.Format("UPDATETYPE = '{0}'", strUpdateType)))
            {
                dsSetting.Tables["Setting"].Rows.Remove(r);
            }



            dsSetting.AcceptChanges();
            DataSet_Save();
        }
Exemple #19
0
        /// <summary>
        /// InputComboBox에 선택된 값을 가져온다.(Invoke 아님)
        /// </summary>
        /// <param name="cmb"></param>
        /// <param name="strField"></param>
        public static string Invoke_InputComboBox_GetSelectValue(C1.Win.C1InputPanel.InputComboBox cmb, string strField)
        {
            if (cmb.SelectedIndex < 0)
            {
                return(string.Empty);
            }

            if (cmb.DataSource != null)
            {
                //DataRow dr = ((DataTable)cmb.DataSource).Select(string.Format("{0} = '{1}'", cmb.DisplayMember, cmb.Text))[0];
                return(Fnc.obj2String(((DataRowView)cmb.SelectedValue)[strField]));                              //Function.Fnc.obj2String(dr[strField]);
            }
            else
            {
                return(cmb.Text);
            }
        }
Exemple #20
0
        public static void Server_FileDelete(enSeverType svrType, string strUpdateType, DataRow row,
                                             Function.Db.OracleDB.strConnect strConn, AutoUpdateServer_Web.AutoUpdateServer web)
        {
            string strFileName = Fnc.obj2String(row["FILENAME"]);


            switch (svrType)
            {
            case enSeverType.ORACLE:
                clsDBFunc.FileInfo_DeleteFile(strConn, strUpdateType, clsDBFunc.enUType.FILE.ToString(), strFileName.ToUpper());
                break;

            case enSeverType.WEB:
                web.FileDelete(strUpdateType, strFileName);
                break;
            }
        }
Exemple #21
0
        public void initClass()
        {
            strXmlBody = Fnc.GetResource2string(System.Reflection.Assembly.GetExecutingAssembly(), "Function.xmlEpcis.xml");

            this.ResetXml();

            //SetObjectEvnet(
            //    DateTime.Now,
            //    new string[] { "urn:epc:id:sscc:0614142.0000000003" },
            //    enAction.ADD,
            //    "urn:epcglobal:fmcg:bizstep:shipping",
            //    "urn:epcglobal:hls:active",
            //    new string[] { "urn:epcglobal:fmcg:loc:0614141073467.RP-2" },
            //    new string[] { "urn:epcglobal:fmcg:loc:0614141073467" }
            //    );

            //SEND();
        }
Exemple #22
0
        public static void Data_Insert(string vin, string trimin, string pono, string cartype, string rst, string stationid, string data)
        {
            MsSQL sql = new MsSQL(vari.conn);

            string fld  = string.Empty;
            string vals = string.Empty;

            int[] toolLength = new int[] { 4, 4, 2 };


            for (int t = 1; t <= vari.tool_max_lenth; t++)
            {
                for (int n = 1; n <= vari.rst_max_lenth; n++)
                {
                    fld  += $", T{t:D2}_N{n:D2}";
                    vals += $", '{Fnc.StringGet(ref data,toolLength[n-1])}'";
                }

                if (data.Length < 1)
                {
                    break;
                }
            }

            string qry = string.Format(@"
DECLARE 
	@dtNow DATETIME
BEGIN

	SET @dtNow = GETDATE();

	INSERT INTO T_RESULT 
		(CREATEDATE, PONO, TRIMINSEQ, VIN, CARTYPE, TOTALRESULT, STATION_ID
		{0}	)
	VALUES
		(@dtNow, '{1}', '{2}', '{3}', '{4}', '{5}', '{7}'
		{6} );

END;

", fld, pono, trimin, vin, cartype, rst, vals, stationid);

            sql.Excute_Query(qry, "");
        }
Exemple #23
0
        /// <summary>
        /// 관리테이블에 해당 하는지 확인하다.
        /// </summary>
        /// <param name="dr"></param>
        int mng_Check(DataRow add, int newValue, bool chkIsUse = true)
        {
            try
            {
                string a = Fnc.obj2String(add["Address"]);

                foreach (DataRow r in _dtMng.Rows)
                {
                    if (chkIsUse && !Fnc.obj2String(r["isUse"]).Equals("Y"))
                    {
                        continue;
                    }



                    switch (Fnc.obj2String(r["MNG_Type"]))
                    {
                    case "Fix":
                        if (fnc.Address_InRange(a, Fnc.obj2String(r["Address"]), Fnc.obj2int(r["Address_Length"])))
                        {
                            if (chkConditon(Fnc.obj2String(r["Condition"])))
                            {
                                newValue = Fnc.obj2int(r["Value"]);
                            }
                        }
                        break;

                    case "Trigger":
                        if (chkConditon(Fnc.obj2String(r["Condition"]), a, newValue))
                        {
                            mng_Run(r);
                        }
                        break;
                    }
                }

                return(newValue);
            }
            catch
            {
                return(newValue);
            }
        }
Exemple #24
0
        public void SaveSetting()
        {
            if (dsSet == null)
            {
                InitSettingFile(FileName, DevName);
            }

            DataTable dt = dsSet.Tables[fnc.sPLCSetTable];
            DataRow   d  = dt.Select(string.Format("plcname = '{0}'", DevName))[0];

            d["COMPORT"]  = txtComport.Value;
            d["BAUDRATE"] = Fnc.obj2String(cmbBaudRate.SelectedItem);
            d["DATABIT"]  = Fnc.obj2String(cmbDatabit.SelectedItem);
            d["STOPBIT"]  = Fnc.obj2String(cmbStopbit.SelectedItem);
            d["PARITY"]   = Fnc.obj2String(cmbHandshake.SelectedItem);
            d["FLOW"]     = Fnc.obj2String(cmbParity.SelectedItem);

            fnc.SaveSettingFile(FileName, DevName, dsSet);
        }
Exemple #25
0
        public void SendData(DataRow d, string strAdd, bool isWithFormat)
        {
            try
            {
                //tcp/ip 연결에 경우 전송시 마다 연결을 하고, serial은 열어놓은 상태에서 사용한다.
                if (!isConnected)
                {
                    Open();
                }

                //포멧전송여부 - 포멧이 변경 되면 보낸다.
                if (isWithFormat)
                {
                    SendFormat();
                }

                string strData = "^XA";                 //헤더
                strData += "^XFR:" + strfromatName;
                strData += strAdd;                      //추가 데이터

                foreach (DataRow dr in dtFormatItem.Rows)
                {
                    string strCol = Fnc.obj2String(dr["COL"]);

                    strData += string.Format("^{0}^FD{1}^FS", dr["FUNCTION"], d[strCol]);
                }

                strData += "^XZ";

                SendStringData(strData);
            }
            catch
            {
                throw;
            }
            finally
            {
                if (clsSn == null && isConnected)
                {
                    Close();
                }
            }
        }
Exemple #26
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                clsDBFunc.Insert_Order(clsDB, lstPlan, strOrderType, clsLog, strStationID, SYSTEMID);

                Fnc.ShowMsg(this, "생산지시 저장이 완료 되었습니다.", string.Empty, frmMessage.enMessageType.OK);

                lstPlan.Items.Clear();
                ResetInput();

                this.Close();
            }
            catch (Exception ex)
            {
                clsLog.WLog_Exception("btnXlsLoad", ex);
                Fnc.ShowMsg(this, ex.Message, string.Empty, frmMessage.enMessageType.OK);
            }
        }
Exemple #27
0
        private void log_add(string log)
        {
            if (lstLog.InvokeRequired)
            {
                lstLog.Invoke(new dellog_add(log_add), new object[] { log });
                return;
            }

            int log_max_cnt = 100;

            ListViewItem item = new ListViewItem(new string[] { "", Fnc.Date2String(DateTime.Now, Fnc.enDateType.DateTime), log });

            lstLog.Items.Insert(0, item);

            while (lstLog.Items.Count > log_max_cnt)
            {
                lstLog.Items.RemoveAt(lstLog.Items.Count - 1);
            }
        }
Exemple #28
0
        private int intexcute_Query(string Query, bool writelog = false)
        {
            try
            {
                DB_isOpen();

                if (Query.Trim() == "")
                {
                    throw new Exception("쿼리에 문제가 있습니다.(길이 0)");
                }

                Dbcmd.Parameters.Clear();
                this.Dbcmd.Connection = this.Dbconn;
                Dbcmd.CommandType     = CommandType.Text;
                Dbcmd.CommandText     = Fnc.RemoveSpLetter(Query);

                if (Log != null & writelog)
                {
                    Log.WLog("[OracleDB 쿼리 실행]{0}", Query);
                }

                int intRst = Dbcmd.ExecuteNonQuery();

                Dbcmd.Dispose();

                return(intRst);
            }
            catch (OracleException ex)
            {
                throw new Exception(string.Format("쿼리 실행 Err(Oracle) : {0} / 쿼리 : {1}", ex.Message, Query), ex);
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("DB Open Err(일반) : {0}", ex.Message), ex);
            }
            finally
            {
                if (!this.isTaransaction)
                {
                    this.DB_Close();
                }
            }
        }
Exemple #29
0
        public void Log(JointPositions positions, uint userId, IList <IGesture> gestures)
        {
            positions.InitIfNotSetExt(Fnc.Values <Joints>());

            var timestamp     = DateTime.Now.ToString("O");
            var player        = userId.ToString(CultureInfo.InvariantCulture);
            var positionsDump = string.Join(",", Fnc.Values <Joints>().Select(joint => positions[joint].x + "," + positions[joint].y + "," + positions[joint].z).ToArray());
            var baseDataLine  = timestamp + "," + player + "," + positionsDump + ",";

            if (gestures == null || gestures.Count < 1)
            {
                gestures = new IGesture[] { null }
            }
            ;

            foreach (var dataLine in gestures.Select(gestureDetected => baseDataLine + (gestureDetected != null ? gestureDetected.Gesture.ToString() : "None")))
            {
                _dataStream.WriteLine(dataLine);
            }
        }
Exemple #30
0
        private void clsSerial_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            Thread.Sleep(intRecieveWatingTime);
            int intLength = clsSn.BytesToRead;

            if (intLength < 1)
            {
                return;
            }

            byte[] bytReceive = new byte[intLength];
            clsSn.Read(bytReceive, 0, intLength);

            Console.WriteLine("[serial]{0} / {1}", Fnc.Bytes2String(bytReceive), Encoding.Default.GetString(bytReceive));

            if (OnDataReceived != null)
            {
                ThreadPool.QueueUserWorkItem(new WaitCallback(RaiseEvent), bytReceive);
            }
        }