Beispiel #1
0
 public void CanFindCorectComPort()
 {
     var communicationObject = new CommunicationObject("COM4");
     communicationObject.Open();
     Assert.IsTrue(communicationObject.IsOpen);
     communicationObject.Dispose();
 }
Beispiel #2
0
 public void SetID()
 {
     CommunicationObject communicationObject = new CommunicationObject("COM3");
     byte idToUpdate = 22;
     byte newId =23;
        // var instructionPacket = new InstructionPacketSetID(idToUpdate, newId, communicationObject);
        // instructionPacket.Send();
     CanMoveServo(newId, communicationObject);
 }
Beispiel #3
0
        public void CanMoveServo(byte id, CommunicationObject sender)
        {
            var movment1 = new MovmentComandAX12(id, 0x0ff, 0x150);
            var movment2 = new MovmentComandAX12(id, 0x1ff, 0x150);
            var instructionPacket = new InstructionPacketSyncMovment(sender, movment1);
            instructionPacket.Send();

            Thread.Sleep(2000);
            instructionPacket = new InstructionPacketSyncMovment(sender, movment2);
            instructionPacket.Send();

            sender.Dispose();
        }
Beispiel #4
0
        public void CanCalculateRippelGate6()
        {
            ISender sender = new CommunicationObject(COMPORT);
             HomePosition homePosition = HomePositionFactory.CreateHomePosition();
             Phoenix phoenix = RobotFactory.CreatePhoenix(HomePositionFactory.CreateHomePosition());

             RippelGate6 rippelGate6 = new RippelGate6(phoenix, homePosition);
             for (int i = 0; i < 20; i++)
             {
                 double direction = 90;
                 double stepValue = 1;
                 ServoBase.TimeBox = 0.2;
                 new InstructionPacketSyncMovment(sender, rippelGate6.NextSequence(direction,stepValue)).Send();
                 Thread.Sleep((int) ServoBase.TimeBox * 1000);
             }
             for (int i = 0; i < 20; i++)
             {
                 double direction = 0;
                 double stepValue = 2;
                 ServoBase.TimeBox = 1;
                 new InstructionPacketSyncMovment(sender, rippelGate6.NextSequence(direction, stepValue)).Send();
                 Thread.Sleep((int)ServoBase.TimeBox * 1000);
             }
             for (int i = 0; i < 20; i++)
             {
                 double direction = -45;
                 double stepValue = 1;
                 ServoBase.TimeBox = 1;
                 new InstructionPacketSyncMovment(sender, rippelGate6.NextSequence(direction, stepValue)).Send();
                 Thread.Sleep((int)ServoBase.TimeBox * 1000);
             }
             for (int i = 0; i < 20; i++)
             {
                 double direction = 135;
                 double stepValue = 2;
                 ServoBase.TimeBox = 1;
                 new InstructionPacketSyncMovment(sender, rippelGate6.NextSequence(direction, stepValue)).Send();
                 Thread.Sleep((int)ServoBase.TimeBox * 1000);
             }

             ((CommunicationObject)sender).Dispose();
        }
Beispiel #5
0
 /// <summary>
 /// データ取得エラー時処理
 /// </summary>
 /// <param name="message"></param>
 public override void OnReveivedError(CommunicationObject message)
 {
     base.OnReveivedError(message);
     MessageBox.Show(ErrorMessage);
 }
Beispiel #6
0
        /// <summary>
        /// 取得データの取り込み
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            try
            {
                this.ErrorMessage = string.Empty;

                base.SetFreeForInput();

                var       data = message.GetResultData();
                DataTable tbl  = (data is DataTable) ? (data as DataTable) : null;

                switch (message.GetMessageName())
                {
                case GET_LIST_SEARCH:
                case SET_CALCULATE:
                    if (tbl == null)
                    {
                        this.sgSearchResult.ItemsSource = null;
                        this.ErrorMessage = "システムエラーが発生しました。サポートにお問い合わせください。";
                        return;
                    }
                    else
                    {
                        if (tbl.Rows.Count > 0)
                        {
                            SearchList = tbl;
                            sgSearchResult.Visibility = System.Windows.Visibility.Visible;

                            if (message.GetMessageName() == GET_LIST_SEARCH)
                            {
                                AjustRatio.Focus();
                                _searchMode = SearchMode.見込計算;
                            }
                            else if (message.GetMessageName() == SET_CALCULATE)
                            {
                                MessageBox.Show("調整比率計算処理が完了しました。\r\n計算結果を確定する場合は調整確定をおこなってください。",
                                                "調整計算終了",
                                                MessageBoxButton.OK,
                                                MessageBoxImage.Information);

                                Confirm.Visibility = System.Windows.Visibility.Visible;
                                _searchMode        = SearchMode.調整計算;
                            }
                        }
                        else
                        {
                            SearchList        = null;
                            this.ErrorMessage = "指定された条件の請求データはありません。";
                        }
                    }
                    break;

                case SET_CONFIRM:
                    if (MessageBox.Show(
                            "集計が終了しました。\r\n終了しても宜しいでしょうか?",
                            "確認",
                            MessageBoxButton.YesNo,
                            MessageBoxImage.Question) == MessageBoxResult.Yes)
                    {
                        this.Close();
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                base.SetFreeForInput();
                this.ErrorMessage = ex.Message;
            }
        }
        /// <summary>
        /// 取得データの取り込み
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            var       data = message.GetResultData();
            DataTable tbl  = (data is DataTable) ? (data as DataTable) : null;

            switch (message.GetMessageName())
            {
            case TabelNmList:
                // データが取得できなかった場合は処理しない
                if (tbl == null)
                {
                    return;
                }

                DataRow[] drList = tbl.Select("原価 IS NOT NULL");
                DataView  dv;
                if (drList.Count() > 0 && string.IsNullOrEmpty(this.txtCode.Text))
                {
                    DataTable tblShiire = tbl.Clone();

                    foreach (DataRow dr in drList)
                    {
                        tblShiire.ImportRow(dr);
                    }
                    dv = convertTableDisplayList(tblShiire).AsDataView();
                }
                else
                {
                    dv = convertTableDisplayList(tbl).AsDataView();
                }
                // 絞り込みフィルタ生成
                StringBuilder sb = new StringBuilder();

                // 品番
                if (!string.IsNullOrEmpty(this.txtCode.Text))
                {
                    //sb.AppendFormat("( 品番コード = {0} OR 自社品番 LIKE '%{1}%' )", this.txtCode.Text, this.txtCode.Text);
                    sb.AppendFormat("( 自社品番 LIKE '%{0}%' )", this.txtCode.Text);
                }

                // 品名
                if (!string.IsNullOrEmpty(this.txtName.Text))
                {
                    sb.AppendFormat("{0} {1} LIKE '%{2}%'", sb.Length == 0 ? string.Empty : " AND", COLUMN_MY_NAME, this.txtName.Text);
                }

                // ブランド
                if (!string.IsNullOrEmpty(this.txtBrand.Text1))
                {
                    sb.AppendFormat("{0} {1} = '{2}'", sb.Length == 0 ? string.Empty : " AND", COLUMN_BRAND, this.txtBrand.Text1);
                }

                // シリーズ
                if (!string.IsNullOrEmpty(this.txtSeries.Text1))
                {
                    sb.AppendFormat("{0} {1} = '{2}'", sb.Length == 0 ? string.Empty : " AND", COLUMN_SERIES, this.txtSeries.Text1);
                }

                // 商品形態分類
                sb.Append(getItemClassFilterStrings(sb.Length > 0));

                // フィルタリング設定
                dv.RowFilter = sb.ToString();

                switch (OrderColumn.SelectedIndex)
                {
                case 0:             // 品番
                default:
                    dv.Sort = COLUMN_CODE;
                    break;

                case 1:             // 自社品番
                    dv.Sort = COLUMN_MY_CODE;
                    break;

                case 2:             // 自社品名
                    dv.Sort = COLUMN_MY_NAME;
                    break;
                }

                SearchResult             = dv.ToTable();
                SearchGrid.SelectedIndex = 0;
                break;

            default:
                break;
            }
        }
Beispiel #8
0
        /// <summary>
        /// データ受信メソッド
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            try
            {
                var data = message.GetResultData();

                DataTable tbl = data as DataTable;

                switch (message.GetMessageName())
                {
                case M09_HIN_getDataList:
                    datatable_M09_HIN_All = tbl;
                    break;

                case TargetTableNm:
                    SetTblData(tbl);

                    // 編集ステータス表示
                    this.MaintenanceMode = (tbl.Rows.Count > 0) ? AppConst.MAINTENANCEMODE_EDIT : AppConst.MAINTENANCEMODE_ADD;

                    SetFocusToTopControl();

                    // REMARKS:行バインドではLinkItemの大分類が設定されないので
                    //         再適用させる
                    string midium = M09_HIN_SearchRow["中分類"].ToString();
                    txtMediumClassCode.Text1 = string.Empty;
                    txtMediumClassCode.Text1 = midium;

                    // No-92 Add Start
                    bool blnCopyEnabled = true;
                    if (this.MaintenanceMode == AppConst.MAINTENANCEMODE_EDIT)
                    {
                        blnCopyEnabled = false;
                    }
                    this.Copy_MyProductCode.IsEnabled = blnCopyEnabled;
                    this.Copy_ColorCode.IsEnabled     = blnCopyEnabled;
                    this.CopyButton.IsEnabled         = blnCopyEnabled;
                    // No-92 Add End

                    break;

                case UpdateTable:
                    if (LogicalDel.Text.Equals("9"))
                    {
                        MessageBox.Show("削除処理が完了しました。", "確認", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                    else
                    {
                        MessageBox.Show("登録処理が完了しました。", "確認", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                    ScreenClear();
                    break;

                case GetNextID:
                    SetTblData(tbl);
                    品番コード = M09_HIN_SearchRow["品番コード"].ToString();

                    ChangeKeyItemChangeable(false);
                    this.MaintenanceMode = AppConst.MAINTENANCEMODE_ADD;
                    SetFocusToTopControl();
                    break;

                // No-92 Add Start
                case M09_HIN_getDataMyProduct:
                    SetTblDataCopy(tbl);


                    this.ResetAllValidation();

                    // REMARKS:行バインドではLinkItemの大分類が設定されないので
                    //         再適用させる
                    string midiumWk = M09_HIN_SearchRow["中分類"].ToString();
                    txtMediumClassCode.Text1 = string.Empty;
                    txtMediumClassCode.Text1 = midiumWk;
                    break;

                // No-92 Add End
                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                this.ErrorMessage = ex.Message;
            }
        }
Beispiel #9
0
        /// <summary>
        /// 取得データの取り込み
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            var       data = message.GetResultData();
            DataTable tbl  = (data is DataTable) ? (data as DataTable) : null;

            switch (message.GetMessageName())
            {
            case TabelNm:
                //Gridのバインド変数に代入
                SearchResult = tbl;

                DataRow r = null;

                //かな読みの条件で抽出
                if (!string.IsNullOrEmpty(担当者名))
                {
                    DataTable dt = SearchResult.Clone();

                    foreach (DataRow dtRow in SearchResult.Select("担当者名 LIKE '%" + 担当者名 + "%'"))
                    {
                        r = dt.NewRow();
                        for (int n = 0; n < dtRow.ItemArray.Length; n++)
                        {
                            r[n] = dtRow[n];
                        }
                        dt.Rows.Add(r);
                    }
                    SearchResult = dt;
                }
                //かな読みの条件で抽出
                if (!string.IsNullOrEmpty(かな読み))
                {
                    DataTable dt = SearchResult.Clone();

                    foreach (DataRow dtRow in SearchResult.Select("かな読み LIKE '%" + かな読み + "%'"))
                    {
                        r = dt.NewRow();
                        for (int n = 0; n < dtRow.ItemArray.Length; n++)
                        {
                            r[n] = dtRow[n];
                        }
                        dt.Rows.Add(r);
                    }
                    SearchResult = dt;
                }

                DataView view = new DataView(SearchResult);

                switch (OrderColumn.SelectedIndex)
                {
                case 0:         //コード
                default:
                    view.Sort = COLUM_ID;
                    break;

                case 1:         //商品名
                    view.Sort = COLUM_NAME;
                    break;

                case 2:         //商品よみ
                    view.Sort = COLUM_KANA;
                    break;
                }

                SearchResult             = view.ToTable();
                SearchGrid.SelectedIndex = 0;


                break;

            default:
                break;
            }
        }
Beispiel #10
0
        /// <summary>
        /// データ受信処理
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            try
            {
                this.ErrorMessage = string.Empty;
                var       data = message.GetResultData();
                DataTable tbl  = (data is DataTable) ? (data as DataTable) : null;

                switch (message.GetMessageName())
                {
                case T05_GetData:
                    // 伝票検索または新規伝票の場合
                    DataSet ds = data as DataSet;
                    if (ds != null)
                    {
                        SetTblData(ds);

                        // No-156-1 Add Start
                        bool blnEnabled = true;
                        if (this.MaintenanceMode == AppConst.MAINTENANCEMODE_EDIT)
                        {
                            blnEnabled = false;
                        }
                        setDispHeaderEnabled(blnEnabled);
                        // No-156-1 Add Add End
                    }
                    else
                    {
                        MessageBox.Show("指定の伝票番号は登録されていません。", "伝票未登録", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                        this.txt伝票番号.Focus();
                    }
                    break;

                // No-222 Add Start
                case UpdateData_StockCheck:
                    // 在庫数チェック結果受信
                    Dictionary <int, string> updateList = data as Dictionary <int, string>;
                    string zaiUpdateMessage             = AppConst.CONFIRM_UPDATE;
                    var    zaiMBImage = MessageBoxImage.Question;

                    foreach (DataRow row in SearchDetail.Select("", "", DataViewRowState.CurrentRows))
                    {
                        int rowNum = row.Field <int>("行番号");

                        if (updateList.ContainsKey(rowNum) == true)
                        {
                            zaiMBImage       = MessageBoxImage.Warning;
                            zaiUpdateMessage = "在庫がマイナスになる品番が存在しますが、\r\n登録してもよろしいでしょうか?";
                            break;
                        }
                    }

                    if (MessageBox.Show(zaiUpdateMessage,
                                        "登録確認",
                                        MessageBoxButton.YesNo,
                                        zaiMBImage,
                                        MessageBoxResult.Yes) == MessageBoxResult.No)
                    {
                        return;
                    }

                    Update();
                    break;
                // No-222 Add End

                case T05_Update:
                    MessageBox.Show(AppConst.SUCCESS_UPDATE, "登録完了", MessageBoxButton.OK, MessageBoxImage.Information);
                    // コントロール初期化
                    ScreenClear();
                    break;

                case T05_Delete:
                    MessageBox.Show(AppConst.SUCCESS_DELETE, "削除完了", MessageBoxButton.OK, MessageBoxImage.Information);
                    // コントロール初期化
                    ScreenClear();
                    break;

                case MasterCode_MyProduct:
                    #region 自社品番 手入力時
                    DataTable ctbl      = data as DataTable;
                    int       rIdx      = gcSpreadGrid.ActiveRowIndex;
                    int       columnIdx = gcSpreadGrid.ActiveColumnIndex;

                    // フォーカス移動後の項目が異なる場合または編集行が異なる場合は処理しない。
                    if ((columnIdx != (int)GridColumnsMapping.自社品名) || _編集行 != rIdx)
                    {
                        return;
                    }

                    if (ctbl == null || ctbl.Rows.Count == 0)
                    {
                        // 対象データなしの場合
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.品番コード].Value = 0;
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.自社品番].Value  = string.Empty;
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.自社品名].Value  = string.Empty;
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.数量].Value    = 0m;
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.消費税区分].Value = 0;       // [軽減税率対象]0:対象外
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.商品分類].Value  = 3;       // [商品分類]3:その他

                        // 20190624CB-S

                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.色コード].Value = string.Empty;
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.色名称].Value  = string.Empty;

                        // 20190624CB-E
                    }
                    else if (ctbl.Rows.Count > 1)
                    {
                        // 対象データが複数ある場合
                        int cIdx   = gcSpreadGrid.ActiveColumnIndex;
                        var colVal = gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.自社品番].Value;

                        SCHM09_MYHIN myhin = new SCHM09_MYHIN();
                        myhin.txtCode.Text         = colVal == null ? string.Empty : colVal.ToString();
                        myhin.txtCode.IsEnabled    = false;
                        myhin.TwinTextBox          = new UcLabelTwinTextBox();
                        myhin.TwinTextBox.LinkItem = 1;
                        if (myhin.ShowDialog(this) == true)
                        {
                            gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.品番コード].Value = myhin.SelectedRowData["品番コード"].ToString();
                            gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.自社品番].Value  = myhin.SelectedRowData["自社品番"].ToString();
                            gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.自社品名].Value  = myhin.SelectedRowData["自社品名"].ToString();
                            gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.数量].Value    = 1m;
                            gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.消費税区分].Value = myhin.SelectedRowData["消費税区分"];
                            gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.商品分類].Value  = myhin.SelectedRowData["商品分類"];

                            // 20190624CB-S

                            gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.色コード].Value = myhin.SelectedRowData["自社色"];
                            gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.色名称].Value  = myhin.SelectedRowData["自社色名"];

                            // 20190624CB-E

                            // 自社品番のセルをロック
                            gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.自社品番].Locked = true;
                        }
                    }
                    else
                    {
                        // 対象データありの場合
                        DataRow drow = ctbl.Rows[0];
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.品番コード].Value = drow["品番コード"].ToString();
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.自社品番].Value  = drow["自社品番"].ToString();
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.自社品名].Value  = drow["自社品名"].ToString();
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.数量].Value    = 1m;
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.消費税区分].Value = drow["消費税区分"];
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.商品分類].Value  = drow["商品分類"];

                        //20190624CB-S
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.色コード].Value = drow["自社色"];
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.色名称].Value  = drow["自社色名"];
                        //20190624CB-E

                        // 自社品番のセルをロック
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.自社品番].Locked = true;

                        // 20190704CB-S
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.品番コード].Locked = true;
                        //gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.賞味期限].Locked = true;         No-206 Mod
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.消費税区分].Locked = true;
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.商品分類].Locked  = true;
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.色コード].Locked  = true;
                        gcSpreadGrid.Cells[rIdx, (int)GridColumnsMapping.色名称].Locked   = true;
                        // 20190704CB-E
                    }

                    #endregion

                    break;

                default:
                    break;
                }
            }
            catch
            {
            }
        }
Beispiel #11
0
        public void RotateBody15degresCW()
        {
            ISender sender = new CommunicationObject(COMPORT);
            Phoenix phoenix = RobotFactory.CreatePhoenix(HomePositionFactory.CreateHomePosition());
            phoenix.RotateBody(40,1);

            var movments = phoenix.GetMovements();

            var instructionPacket = new InstructionPacketSyncMovment(sender, movments);
            instructionPacket.Send();

            ((CommunicationObject)sender).Dispose();
        }
Beispiel #12
0
        /// <summary>
        /// 取得データの正常受信時のイベント
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            try
            {
                var       data = message.GetResultData();
                DataTable tbl  = (data is DataTable) ? (data as DataTable) : null;
                switch (message.GetMessageName())
                {
                // 付表1取得
                case SEARCH_SRY23010:
                    this.spFuhyo1.ItemsSource = tbl.DefaultView;
                    break;

                // 付表2取得
                case SEARCH_SRY23020:
                    this.spFuhyo2.ItemsSource = tbl.DefaultView;
                    印刷Flg = 1;
                    break;

                // Excel出力
                case SEARCH_SRY23010_EXCEL:
                    if (Type.GetTypeFromProgID("Excel.Application") != null)
                    {
                        Excel(tbl);
                    }
                    else
                    {
                        MessageBox.Show(this, "Excelがインストールされていません。\n\r出力処理を中断します。");
                    }
                    break;

                case SEARCH_SRY23020_EXCEL:
                    if (Type.GetTypeFromProgID("Excel.Application") != null)
                    {
                        Excel2(tbl);
                        MessageBox.Show("データを出力しました");
                    }
                    else
                    {
                        MessageBox.Show(this, "Excelがインストールされていません。\n\r出力処理を中断します。");
                    }
                    break;

                case SEARCH_SRY23010_GDATE:
                    if (tbl != null)
                    {
                        //M87_CTRLからG期首・期末月日を取得
                        string   sG期首月日 = tbl.Rows[0]["G期首月日"].ToString() == string.Empty ? "0" : tbl.Rows[0]["G期首月日"].ToString();
                        string   sG期末月日 = tbl.Rows[0]["G期末月日"].ToString() == string.Empty ? "0" : tbl.Rows[0]["G期末月日"].ToString();
                        DateTime date;

                        //M87_CNTLのG期首月日のデータをセット
                        switch (sG期首月日.Length)
                        {
                        case 0:
                            sG期首月日 = "01/01";
                            break;

                        case 1:
                            sG期首月日 = "01/01";
                            break;

                        case 2:
                            sG期首月日 = "01/" + sG期首月日;
                            break;

                        case 3:
                            sG期首月日 = "0" + sG期首月日.Substring(0, 1) + "/" + sG期首月日.Substring(1, 2);
                            break;

                        case 4:
                            sG期首月日 = sG期首月日.Substring(0, 2) + "/" + sG期首月日.Substring(2, 2);
                            break;
                        }

                        //DATETIMEに変換できるかチェック
                        if (DateTime.TryParse(作成年 + "/" + sG期首月日, out date))
                        {
                            集計期間From = date;
                        }
                        else
                        {
                            集計期間From = Convert.ToDateTime(作成年 + "/01/01");
                        }

                        //M87_CNTLのG期末月日のデータをセット
                        switch (sG期末月日.Length)
                        {
                        case 0:
                            sG期末月日 = "12/31";
                            break;

                        case 1:
                            sG期末月日 = "12/31";
                            break;

                        case 2:
                            sG期末月日 = "12/" + sG期末月日;
                            break;

                        case 3:
                            sG期末月日 = "0" + sG期末月日.Substring(0, 1) + "/" + sG期末月日.Substring(1, 2);
                            break;

                        case 4:
                            sG期末月日 = sG期末月日.Substring(0, 2) + "/" + sG期末月日.Substring(2, 2);
                            break;
                        }

                        //DATETIMEに変換できるかチェック
                        if (DateTime.TryParse(作成年 + "/" + sG期末月日, out date))
                        {
                            集計期間To = date;
                        }
                        else
                        {
                            集計期間To = Convert.ToDateTime(作成年 + "/12/31");
                        }

                        //【集計期間From】の方が大きかった場合【集計期間To】のYearを+1する
                        if (集計期間From > 集計期間To)
                        {
                            集計期間To = 集計期間To.Value.AddYears(+1);
                        }
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        public override async Task BeginReceiveAsync()
        {
            ClientWebSocketRequestManager reqManager = new ClientWebSocketRequestManager(client, _appServiceProvider);
            Task requestWatch = Task.Run(WatchForRequestsAsync);

            while (socket.State == WebSocketState.Open)
            {
                try
                {
                    byte[] receivedData = await ReceiveBytesAsync().ConfigureAwait(false);

                    requestCount++;
                    if (CheckRequestFrequency() && receivedData != null && receivedData.Any())
                    {
                        if (client.IsProxiedClientConnection)
                        {
                            await nodeRequestSender.SendProxyUsersCommunicationsNodeRequestAsync(
                                receivedData,
                                client.UserId.GetValueOrDefault(),
                                connectionsService.GetNodeConnections().FirstOrDefault(opt => opt.NodeWebSocket == client.ProxyNodeWebSocket),
                                ObjectType.Request,
                                client.PublicKey,
                                client.SignPublicKey).ConfigureAwait(false);

                            continue;
                        }
                        CommunicationObject communicationObject = ConvertReceivedDataToCommucicatonObject(receivedData);
                        switch (communicationObject.Type)
                        {
                        case ObjectType.Request:
                            reqManager.HandleRequestAsync((Request)communicationObject, receivedData.Length);
                            break;

                        case ObjectType.ClientResponse:
                            reqManager.HandleClientResponse((ClientResponse)communicationObject);
                            break;

                        default:
                            throw new ArgumentException($"{communicationObject.Type} not supported in current context.");
                        }
                    }
                    else
                    {
                        errorResponse = new ResultResponse(-1, "Sorry, too many requests.", ErrorCode.TooManyRequests);
                        await socket.SendAsync(
                            ObjectSerializer.ResponseToBytes(errorResponse),
                            WebSocketMessageType.Binary,
                            true,
                            CancellationToken.None).ConfigureAwait(false);
                    }
                }
                catch (WebSocketException)
                {
                    var clientConnections = connectionsService.GetUserClientConnections(client.UserId.GetValueOrDefault());
                    if (clientConnections != null)
                    {
                        connectionsService.RemoveClientConnection(client);
                        if (client.IsProxiedClientConnection)
                        {
                            nodeNoticeService.SendClientDisconnectedNodeNoticeAsync(client.UserId.GetValueOrDefault(), client.ProxyNodeWebSocket);
                        }
                    }
                }
                catch (DeserializationException ex)
                {
                    long requestId;
                    try
                    {
                        var data = ObjectSerializer.JsonToObject <dynamic>(ex.Message);
                        requestId = (long)data["RequestId"];
                    }
                    catch
                    {
                        Logger.WriteLog(ex);
                        requestId = -1;
                    }
                    errorResponse = new ResultResponse(requestId, "Unable to deserialize request data.", ErrorCode.InvalidRequestFormat);
                    await socket.SendAsync(
                        ObjectSerializer.ResponseToBytes(errorResponse),
                        WebSocketMessageType.Binary,
                        true,
                        CancellationToken.None).ConfigureAwait(false);
                }
                catch (TooLargeReceivedDataException ex)
                {
                    Logger.WriteLog(ex);
                    errorResponse = new ResultResponse(-1, null, ErrorCode.TooLargeRequestData);
                    await socket.SendAsync(
                        ObjectSerializer.ResponseToBytes(errorResponse),
                        WebSocketMessageType.Binary,
                        true,
                        CancellationToken.None).ConfigureAwait(false);
                }
                catch (Exception ex)
                {
                    Logger.WriteLog(ex);
                }
            }
        }
 protected void ThrowIfClosedOrCreated()
 {
     CommunicationObject.ThrowIfClosed();
     ThrowIfCreated();
 }
Beispiel #15
0
 public DeleteFilesNoticeHandler(CommunicationObject @object, NodeConnection nodeConnection, IFilesService filesService)
 {
     notice = (DeleteFilesNodeNotice)@object;
     this.nodeConnection = nodeConnection;
     this.filesService   = filesService;
 }
Beispiel #16
0
 /// <summary>
 /// 受信エラー時の処理をおこなう
 /// </summary>
 /// <param name="message"></param>
 public override void OnReveivedError(CommunicationObject message)
 {
     base.OnReveivedError(message);
     this.Message = base.ErrorMessage;
     base.SetFreeForInput();
 }
Beispiel #17
0
        /// <summary>
        /// データ受信処理
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            try
            {
                this.ErrorMessage = string.Empty;
                var       data = message.GetResultData();
                DataTable tbl  = (data is DataTable) ? (data as DataTable) : null;

                switch (message.GetMessageName())
                {
                case DLY04011_GetData:
                    // 伝票検索または新規伝票の場合
                    DataSet ds = data as DataSet;
                    if (ds != null)
                    {
                        SetTblData(ds);
                        ChangeKeyItemChangeable(false);
                        this.txt移動日.Focus();
                    }
                    else
                    {
                        MessageBox.Show("指定の伝票番号は登録されていません。", "伝票未登録", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                        this.txt伝票番号.Focus();
                    }
                    break;

                case UpdateData_StockCheck:
                    // 在庫数チェック結果受信
                    Dictionary <int, string> updateList = data as Dictionary <int, string>;
                    string zaiUpdateMessage             = AppConst.CONFIRM_UPDATE;
                    var    zaiMBImage = MessageBoxImage.Question;

                    int outNum = OutSearchDetail.Field <int>("行番号");
                    int inNum  = InSearchDetail.Field <int>("行番号");

                    if (updateList.ContainsKey(outNum) == true && updateList.ContainsKey(inNum) == true)
                    {
                        zaiMBImage       = MessageBoxImage.Warning;
                        zaiUpdateMessage = "入庫と出庫の在庫がマイナスになりますが、\r\n登録してもよろしいでしょうか?";
                    }
                    else if (updateList.ContainsKey(outNum) == true)
                    {
                        zaiMBImage       = MessageBoxImage.Warning;
                        zaiUpdateMessage = "出庫の在庫がマイナスになりますが、\r\n登録してもよろしいでしょうか?";
                    }
                    else if (updateList.ContainsKey(inNum) == true)
                    {
                        zaiMBImage       = MessageBoxImage.Warning;
                        zaiUpdateMessage = "入庫の在庫がマイナスになりますが、\r\n登録してもよろしいでしょうか?";
                    }



                    if (MessageBox.Show(zaiUpdateMessage,
                                        "登録確認",
                                        MessageBoxButton.YesNo,
                                        zaiMBImage,
                                        MessageBoxResult.Yes) == MessageBoxResult.No)
                    {
                        return;
                    }

                    Update();
                    break;

                case DeleteData_StockCheck:
                    // 在庫数チェック結果受信
                    Dictionary <int, string> deleteZaiList = data as Dictionary <int, string>;
                    string zaiDelMessage = "表示中の伝票を削除してもよろしいですか?";
                    var    zaiDelMBImage = MessageBoxImage.Question;

                    if (deleteZaiList.Count > 0)
                    {
                        zaiDelMBImage = MessageBoxImage.Warning;
                        zaiDelMessage = "入庫の在庫がマイナスになりますが、\r\n表示中の伝票を削除してもよろしいでしょうか?";
                    }

                    if (MessageBox.Show(zaiDelMessage,
                                        "登録確認",
                                        MessageBoxButton.YesNo,
                                        zaiDelMBImage,
                                        MessageBoxResult.Yes) == MessageBoxResult.No)
                    {
                        return;
                    }

                    Delete();
                    break;

                case DLY04011_Update:
                    MessageBox.Show(AppConst.SUCCESS_UPDATE, "登録完了", MessageBoxButton.OK, MessageBoxImage.Information);
                    // コントロール初期化
                    ScreenClear();
                    break;

                case DLY04011_Delete:
                    MessageBox.Show(AppConst.SUCCESS_DELETE, "削除完了", MessageBoxButton.OK, MessageBoxImage.Information);
                    // コントロール初期化
                    ScreenClear();
                    break;

                case GetMyProduct:

                    #region 自社品番 手入力時

                    DataTable ctbl   = data as DataTable;
                    int?      p商品コード = null;
                    int?      p商品分類  = null;
                    string    p商品名   = string.Empty;
                    string    p自社色情報 = string.Empty;

                    // 対象データが存在する場合
                    if (ctbl != null && ctbl.Rows.Count > 0)
                    {
                        if (ctbl.Rows.Count == 1)
                        {
                            p商品コード = int.Parse(ctbl.Rows[0]["品番コード"].ToString());
                            p商品名   = ctbl.Rows[0]["自社品名"].ToString();
                            p商品分類  = int.Parse(ctbl.Rows[0]["商品分類"].ToString());
                            p自社色情報 = ctbl.Rows[0]["自社色"].ToString() + " " + ctbl.Rows[0]["自社色名"].ToString();
                        }
                        else
                        {
                            // 対象データが複数存在する場合
                            SCHM09_MYHIN myhin = new SCHM09_MYHIN();

                            myhin.txtCode.Text         = 入出庫フラグ == 1 ? txt入庫自社品番.Text1 : txt出庫自社品番.Text1;
                            myhin.txtCode.IsEnabled    = false;
                            myhin.TwinTextBox          = new UcLabelTwinTextBox();
                            myhin.TwinTextBox.LinkItem = 0;
                            if (myhin.ShowDialog(this) == true)
                            {
                                p商品コード = int.Parse(myhin.SelectedRowData["品番コード"].ToString());
                                p商品名   = myhin.SelectedRowData["自社品名"].ToString();
                                p商品分類  = int.Parse(myhin.SelectedRowData["商品分類"].ToString());
                                p自社色情報 = myhin.SelectedRowData["自社色"].ToString() + " " + myhin.SelectedRowData["自社色名"].ToString();
                            }
                        }
                    }

                    if (入出庫フラグ == 1)
                    {
                        if (p商品コード == null)
                        {
                            InSearchDetail["品番コード"] = DBNull.Value;
                        }
                        else
                        {
                            InSearchDetail["品番コード"] = p商品コード;
                        }

                        if (p商品分類 == null)
                        {
                            InSearchDetail["商品分類"] = DBNull.Value;
                        }
                        else
                        {
                            InSearchDetail["商品分類"] = p商品分類;
                        }

                        txt入庫自社品番.Text2 = p商品名;
                        入庫自社色情報         = p自社色情報;
                    }
                    else if (入出庫フラグ == 2)
                    {
                        if (p商品コード == null)
                        {
                            OutSearchDetail["品番コード"] = DBNull.Value;
                        }
                        else
                        {
                            OutSearchDetail["品番コード"] = p商品コード;
                        }

                        if (p商品分類 == null)
                        {
                            OutSearchDetail["商品分類"] = DBNull.Value;
                        }
                        else
                        {
                            OutSearchDetail["商品分類"] = p商品分類;
                        }

                        txt出庫自社品番.Text2 = p商品名;
                        出庫自社色情報         = p自社色情報;
                    }

                    #endregion

                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #18
0
        public void LiveSensorTest()
        {
            CommunicationObject communicationObject = new CommunicationObject("COM4");
            //communicationObject.Respons

            while (true)
            {
                var instructionPacket = new InstructionPacketReadServoSensorData(5, communicationObject);
                instructionPacket.Send();
                Thread.Sleep(2000);
            }

            ((CommunicationObject)communicationObject).Dispose();
        }
Beispiel #19
0
 // token provider methods
 protected override SecurityToken GetTokenCore(TimeSpan timeout)
 {
     CommunicationObject.ThrowIfClosedOrNotOpen();
     return(DoOperationAsync(SecuritySessionOperation.Issue, _targetAddress, _via, null, timeout).GetAwaiter().GetResult());
 }
Beispiel #20
0
        public void MakeQuiet()
        {
            var ids = new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18};
            ISender sender = new CommunicationObject("COM5");
            var punch = new InstructionPacketSyncPunch(sender, ids);
            punch.Send();

            var margin = new InstructionPacketSyncCOMPLIANCE_MARGIN(sender, ids);
            margin.Send();

            ((CommunicationObject) sender).Dispose();
        }
Beispiel #21
0
 internal override Task <SecurityToken> GetTokenCoreInternalAsync(TimeSpan timeout)
 {
     CommunicationObject.ThrowIfClosedOrNotOpen();
     return(DoOperationAsync(SecuritySessionOperation.Issue, _targetAddress, _via, null, timeout));
 }
Beispiel #22
0
 public NewFilesNoticeHandler(CommunicationObject @object, NodeConnection connection, IFilesService filesService)
 {
     notice            = (NewFilesNodeNotice)@object;
     nodeConnection    = connection;
     this.filesService = filesService;
 }
Beispiel #23
0
 internal override Task <SecurityToken> RenewTokenCoreInternalAsync(TimeSpan timeout, SecurityToken tokenToBeRenewed)
 {
     CommunicationObject.ThrowIfClosedOrNotOpen();
     return(DoOperationAsync(SecuritySessionOperation.Renew, _targetAddress, _via, tokenToBeRenewed, timeout));
 }
Beispiel #24
0
 public BorderControl(IOptions <BorderControlConfig> borderControlConfig, CommunicationObject communicationObject)
 {
     _borderControlConfig = borderControlConfig.Value;
     _communicationObject = communicationObject;
 }
Beispiel #25
0
 protected virtual GenericXmlSecurityToken ProcessIssueResponse(Message response, object requestState)
 {
     CommunicationObject.ThrowIfClosedOrNotOpen();
     return(ExtractToken(response, requestState));
 }
Beispiel #26
0
 internal static Exception CreateFaultedException(this CommunicationObject communicationObject)
 {
     return(new CommunicationObjectFaultedException(SRClient.CommunicationObjectFaulted(communicationObject.GetType().ToString())));
 }
Beispiel #27
0
        /// <summary>
        /// データ受信メソッド
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            try
            {
                this.ErrorMessage = string.Empty;

                base.SetFreeForInput();
                var       data = message.GetResultData();
                DataTable tbl  = (data is DataTable) ? (data as DataTable) : null;
                switch (message.GetMessageName())
                {
                case LOAD_MST33010:
                    if (tbl.Rows.Count > 0)
                    {
                        部門別予算データ = (List <SERCHE_MST33010>)AppCommon.ConvertFromDataTable(typeof(List <SERCHE_MST33010>), tbl);

                        //部門別予算データ = tbl;
                        //this.sp燃費目標データ.ItemsSource = this.部門別予算データ.DefaultView;
                        Cnt = 0;
                    }
                    else
                    {
                        this.ErrorMessage = "データがありません。";
                        return;
                    }
                    break;

                case SEARCH_MST33010:
                    if (tbl.Rows.Count > 0)
                    {
                        部門別予算データ = null;
                        部門別予算データ = (List <SERCHE_MST33010>)AppCommon.ConvertFromDataTable(typeof(List <SERCHE_MST33010>), tbl);
                        //部門別予算データ = tbl;
                        //this.sp燃費目標データ.ItemsSource = this.部門別予算データ.DefaultView;
                        Cnt = 1;
                        ChangeKeyItemChangeable(false);
                        //リボンの状態表示
                        if (tbl.Rows[0]["Flg"].ToString() == "0")
                        {
                            //新規ステータス表示
                            this.MaintenanceMode = AppConst.MAINTENANCEMODE_ADD;
                        }
                        else
                        {
                            //編集ステータス表示
                            this.MaintenanceMode = AppConst.MAINTENANCEMODE_EDIT;
                        }

                        DateTime d年月 = Convert.ToDateTime(作成年月.Substring(0, 4).ToString() + "/" + 作成年月.Substring(5, 2).ToString() + "/" + "01");
                        sp燃費目標データ.ColumnHeader[0, 2].Value  = (d年月.Month).ToString() + "月";
                        sp燃費目標データ.ColumnHeader[0, 3].Value  = (d年月.AddMonths(1).Month).ToString() + "月";
                        sp燃費目標データ.ColumnHeader[0, 4].Value  = d年月.AddMonths(2).Month.ToString() + "月";
                        sp燃費目標データ.ColumnHeader[0, 5].Value  = d年月.AddMonths(3).Month.ToString() + "月";
                        sp燃費目標データ.ColumnHeader[0, 6].Value  = d年月.AddMonths(4).Month.ToString() + "月";
                        sp燃費目標データ.ColumnHeader[0, 7].Value  = d年月.AddMonths(5).Month.ToString() + "月";
                        sp燃費目標データ.ColumnHeader[0, 8].Value  = d年月.AddMonths(6).Month.ToString() + "月";
                        sp燃費目標データ.ColumnHeader[0, 9].Value  = d年月.AddMonths(7).Month.ToString() + "月";
                        sp燃費目標データ.ColumnHeader[0, 10].Value = d年月.AddMonths(8).Month.ToString() + "月";
                        sp燃費目標データ.ColumnHeader[0, 11].Value = d年月.AddMonths(9).Month.ToString() + "月";
                        sp燃費目標データ.ColumnHeader[0, 12].Value = d年月.AddMonths(10).Month.ToString() + "月";
                        sp燃費目標データ.ColumnHeader[0, 13].Value = d年月.AddMonths(11).Month.ToString() + "月";
                    }
                    else
                    {
                        this.ErrorMessage = "データがありません。";
                        return;
                    }
                    break;

                case LAST_MANTH_MST33010:
                    if (tbl.Rows.Count > 0)
                    {
                        部門別予算データ = (List <SERCHE_MST33010>)AppCommon.ConvertFromDataTable(typeof(List <SERCHE_MST33010>), tbl);
                        //部門別予算データ = tbl;
                        //this.sp燃費目標データ.ItemsSource = this.部門別予算データ.DefaultView;
                        Cnt = 1;
                    }
                    else
                    {
                        this.ErrorMessage = "データがありません。";
                        return;
                    }
                    break;

                case NINSERT_MST33010:
                    MessageBox.Show("更新が完了しました。");
                    ChangeKeyItemChangeable(true);
                    SetFocusToTopControl();
                    this.MaintenanceMode = string.Empty;
                    部門別予算データ             = null;
                    break;
                }
            }
            catch (Exception ex)
            {
                this.ErrorMessage = ex.Message;
            }
        }
Beispiel #28
0
        /// <summary>
        /// データ受信メソッド
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            try
            {
                this.ErrorMessage = string.Empty;

                base.SetFreeForInput();
                var       data = message.GetResultData();
                DataTable tbl  = (data is DataTable) ? (data as DataTable) : null;
                switch (message.GetMessageName())
                {
                case LOAD_SRY22010:
                    if (tbl.Rows.Count > 0)
                    {
                        燃費目標データ一覧 = tbl;
                        this.sp燃費目標データ.ItemsSource = this.燃費目標データ一覧.DefaultView;
                        Nengetu();
                    }
                    else
                    {
                        this.ErrorMessage          = "データがありません。";
                        燃費目標データ一覧                  = null;
                        this.sp燃費目標データ.ItemsSource = null;
                        return;
                    }
                    break;

                case SEARCH_SRY22010:
                    if (tbl.Rows.Count > 0)
                    {
                        燃費目標データ一覧 = tbl;
                        this.sp燃費目標データ.ItemsSource = this.燃費目標データ一覧.DefaultView;
                        Nengetu();
                    }
                    else
                    {
                        this.ErrorMessage          = "データがありません。";
                        燃費目標データ一覧                  = null;
                        this.sp燃費目標データ.ItemsSource = null;
                        return;
                    }
                    break;

                case OUTPUT_SRY22010_M87_CNTL:
                    if (tbl.Rows.Count > 0)
                    {
                        開始月 = tbl.Rows[0]["G期首月日"].ToString().Length == 3 ? tbl.Rows[0]["G期首月日"].ToString().Substring(0, 1)
                                : tbl.Rows[0]["G期首月日"].ToString().Length == 4 ? tbl.Rows[0]["G期首月日"].ToString().Substring(0, 2) : "4";
                        終了月 = tbl.Rows[0]["G期末月日"].ToString().Length == 3 ? tbl.Rows[0]["G期末月日"].ToString().Substring(0, 1)
                                : tbl.Rows[0]["G期末月日"].ToString().Length == 4 ? tbl.Rows[0]["G期末月日"].ToString().Substring(0, 2) : "3";
                    }
                    break;

                case NINSERT_SRY22010:
                    MessageBox.Show("更新が完了しました。");
                    ChangeKeyItemChangeable(true);
                    SetFocusToTopControl();
                    this.MaintenanceMode = string.Empty;
                    base.SendRequest(new CommunicationObject(MessageType.RequestData, LOAD_SRY22010, new object[] { }));
                    break;

                case OUTPUT_SRY22010:
                    DispPreviw(tbl);
                    break;
                }
            }
            catch (Exception ex)
            {
                this.ErrorMessage = ex.Message;
            }
        }
Beispiel #29
0
 /// <summary>
 /// データアクセスエラー受信イベント
 /// </summary>
 /// <param name="message"></param>
 public override void OnReveivedError(CommunicationObject message)
 {
     // 基底クラスのエラー受信イベントを呼び出します。
     base.OnReveivedError(message);
 }
Beispiel #30
0
 /// <summary>
 /// データアクセスエラー受信イベント
 /// </summary>
 /// <param name="message"></param>
 public override void OnReveivedError(CommunicationObject message)
 {
     // 基底クラスのエラー受信イベントを呼び出します。
     base.OnReveivedError(message);
     // 個別にエラー処理が必要な場合、ここに記述してください。
 }
Beispiel #31
0
        /// <summary>
        /// 取得データの正常受信時のイベント
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            try
            {
                var data = message.GetResultData();

                DataTable tbl = (data is DataTable) ? (data as DataTable) : null;
                switch (message.GetMessageName())
                {
                //検索結果取得時
                case SEARCH_JMI14010:
                    DispPreviw(tbl);
                    break;

                case SEARCH_JMI14010_CSV:
                    tbl_JMI14010 = tbl;
                    int?[] i乗務員List = new int?[0];
                    if (!string.IsNullOrEmpty(乗務員ピックアップ))
                    {
                        string[] 乗務員List = 乗務員ピックアップ.Split(',');
                        i乗務員List = new int?[乗務員List.Length];

                        for (int i = 0; i < 乗務員List.Length; i++)
                        {
                            string str = 乗務員List[i];
                            int    code;
                            if (!int.TryParse(str, out code))
                            {
                                this.ErrorMessage = "乗務員指定の形式が不正です。";
                                return;
                            }
                            i乗務員List[i] = code;
                        }
                    }
                    base.SendRequest(new CommunicationObject(MessageType.RequestDataWithBusy, SEARCH_JMI04010_CSV, new object[] { 乗務員From, 乗務員To, i乗務員List, 集計期間From, 集計期間To, 乗務員ピックアップ }));
                    //OutPutCSV(tbl);
                    break;

                case SEARCH_JMI04010_CSV:
                    tbl_JMI14010_KEIHI = tbl;
                    int?[] i乗務員List2 = new int?[0];
                    if (!string.IsNullOrEmpty(乗務員ピックアップ))
                    {
                        string[] 乗務員List = 乗務員ピックアップ.Split(',');
                        i乗務員List = new int?[乗務員List.Length];

                        for (int i = 0; i < 乗務員List.Length; i++)
                        {
                            string str = 乗務員List[i];
                            int    code;
                            if (!int.TryParse(str, out code))
                            {
                                this.ErrorMessage = "乗務員指定の形式が不正です。";
                                return;
                            }
                            i乗務員List[i] = code;
                        }
                    }
                    base.SendRequest(new CommunicationObject(MessageType.RequestDataWithBusy, SEARCH_JMI01010_CSV, new object[] { 乗務員From, 乗務員To, i乗務員List2, 集計期間From, 集計期間To, 乗務員ピックアップ }));
                    //OutPutCSV(tbl);
                    break;

                case SEARCH_JMI01010_CSV:
                    OutPutCSV(tbl);
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Beispiel #32
0
 public override void OnReveivedError(CommunicationObject message)
 {
     base.OnReveivedError(message);
     this.ErrorMessage = (string)message.GetResultData();
 }
Beispiel #33
0
        public void CanMoveServo5()
        {
            ISender sender = new CommunicationObject("COM4");
            var movment1 = new MovmentComandAX12(5, 0x0ff, 0x150);
            var movment2 = new MovmentComandAX12(3, 0x0ff, 0x150);

            var instructionPacket = new InstructionPacketSyncMovment(sender, movment1, movment2);
            instructionPacket.Send();

            ((CommunicationObject) sender).Dispose();
        }
Beispiel #34
0
 public void sendData(CommunicationObject data)
 {
     SendData(Encoding.UTF8.GetBytes(data.ToString()));
 }
Beispiel #35
0
        public void MoveBodyToStartPosition()
        {
            ISender sender = new CommunicationObject("COM4");
            Phoenix phoenix = RobotFactory.CreatePhoenix(HomePositionFactory.CreateHomePosition());

            var movments = phoenix.GetMovements();

             var instructionPacket = new InstructionPacketSyncMovment(sender, movments);
             instructionPacket.Send();

             ((CommunicationObject)sender).Dispose();
        }
Beispiel #36
0
        public void CanSendInstructionPacketPingToServoID1()
        {
            ISender sender = new CommunicationObject("COM5");
            var ping = new InstructionPacketPing(SERVO_ID, sender);

            ping.Send();
            Assert.IsTrue(ping.IsSent);
            ((CommunicationObject) sender).Dispose();
        }
Beispiel #37
0
        public void CanTurnCWZ30()
        {
            ISender sender = new CommunicationObject(COMPORT);
            HomePosition homePosition = HomePositionFactory.CreateHomePosition();
            Phoenix phoenix = RobotFactory.CreatePhoenix(HomePositionFactory.CreateHomePosition());

            RippelGate6 rippelGate6 = new RippelGate6(phoenix, homePosition);
            for (int i = 0; i < 24; i++)
            {

                double stepValue = 5;
                ServoBase.TimeBox = 1;
                double Z = -30;
                new InstructionPacketSyncMovment(sender, rippelGate6.NextSequenceRotation(stepValue,0,Z)).Send();
                Thread.Sleep((int)ServoBase.TimeBox * 1000);
            }

            ((CommunicationObject)sender).Dispose();
        }
Beispiel #38
0
        /// <summary>
        /// データ受信メソッド
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            try
            {
                var data = message.GetResultData();

                if (data is DataTable)
                {
                    DataTable tbl = data as DataTable;

                    switch (message.GetMessageName())
                    {
                    //担当者データ取得
                    case TargetTableNm:
                        if (tbl.Rows.Count > 0)
                        {
                            if (!string.IsNullOrEmpty(tbl.Rows[0]["削除日時"].ToString()))
                            {
                                //this.ErrorMessage = "既に削除されているデータです。";
                                //MessageBox.Show("既に削除されているデータです。");
                                //return;

                                MessageBoxResult result = MessageBox.Show("既に削除されているデータです。\nこのコードを復元しますか?",
                                                                          "質問",
                                                                          MessageBoxButton.YesNo,
                                                                          MessageBoxImage.Exclamation,
                                                                          MessageBoxResult.No);

                                if (result == MessageBoxResult.No)
                                {
                                    return;
                                }
                            }

                            SetTblData(tbl);
                        }

                        if (string.IsNullOrEmpty(担当者名))
                        {
                            //新規ステータス表示
                            this.MaintenanceMode = AppConst.MAINTENANCEMODE_ADD;
                        }
                        else
                        {
                            //編集ステータス表示
                            this.MaintenanceMode = AppConst.MAINTENANCEMODE_EDIT;
                        }

                        //キーをfalse
                        ChangeKeyItemChangeable(false);
                        SetFocusToTopControl();
                        break;

                    case UpdateTable:
                    case DeleteTable:
                        ScreenClear();
                        break;

                    case M70_JIS:     // 自社マスタ参照
                        M70_JIS_SET(tbl);
                        break;

                    case M74_KGRP:     // 権限マスタ参照
                        M74_KGRP_SET(tbl);
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    switch (message.GetMessageName())
                    {
                    case GetNextID:
                        if (data is int)
                        {
                            int iNextCode = (int)data;
                            担当者ID = iNextCode.ToString();
                            ChangeKeyItemChangeable(false);
                            this.MaintenanceMode = AppConst.MAINTENANCEMODE_ADD;
                            SetFocusToTopControl();
                        }
                        break;

                    //更新処理受信
                    case UpdateTable:

                        if ((int)data == -1)
                        {
                            MessageBoxResult result = MessageBox.Show("担当者ID: " + 担当者ID + "は既に使われています。\n自動採番して登録しますか?",
                                                                      "質問",
                                                                      MessageBoxButton.YesNo,
                                                                      MessageBoxImage.Exclamation,
                                                                      MessageBoxResult.No);

                            if (result == MessageBoxResult.No)
                            {
                                return;
                            }

                            base.SendRequest(new CommunicationObject(MessageType.UpdateData, UpdateTable, new object[] { 担当者ID
                                                                                                                         , 担当者名
                                                                                                                         , かな読み
                                                                                                                         , パスワード
                                                                                                                         , グループ権限ID
                                                                                                                         , 自社コード
                                                                                                                         , 人ナンバー
                                                                                                                         , ccfg.ユーザID
                                                                                                                         , this.MaintenanceMode == AppConst.MAINTENANCEMODE_ADD ? true : false
                                                                                                                         , true }));
                            break;
                        }

                        if (data is int && (int)data == -9)
                        {
                            MessageBox.Show("グループ権限IDが'0'の人が一人は必要です。");
                            break;
                        }

                        MessageBox.Show(AppConst.COMPLETE_UPDATE);
                        //コントロール初期化
                        ScreenClear();
                        break;

                    //削除処理受信
                    case DeleteTable:
                        if (data is int && (int)data == -9)
                        {
                            MessageBox.Show("グループ権限IDが'0'の人が一人は必要です。");
                            break;
                        }
                        MessageBox.Show(AppConst.COMPLETE_DELETE);
                        //コントロール初期化
                        ScreenClear();
                        break;

                    default:
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                this.ErrorMessage = ex.Message;
            }
        }
Beispiel #39
0
        public void MoveBodyToStartPosition3()
        {
            ISender sender = new CommunicationObject(COMPORT);
            Phoenix phoenix = RobotFactory.CreatePhoenix(HomePositionFactory.CreateHomePosition4());

            var movments = phoenix.GetMovements();
            var instructionPacket = new InstructionPacketSyncMovment(sender, movments);
            instructionPacket.Send();
            Thread.Sleep((int)ServoBase.TimeBox * 1000);
            for (int i = 0; i < 15; i++)
            {

                phoenix.MoveBody(0, 90, -1);
                movments = phoenix.GetMovements();
                instructionPacket = new InstructionPacketSyncMovment(sender, movments);
                instructionPacket.Send();
                Thread.Sleep((int)ServoBase.TimeBox * 1000 - 10);
            }
            for (int i = 0; i < 15; i++)
            {

                phoenix.MoveBody(0, 90, 1);
                movments = phoenix.GetMovements();
                instructionPacket = new InstructionPacketSyncMovment(sender, movments);
                instructionPacket.Send();
                Thread.Sleep((int)ServoBase.TimeBox * 1000 + 10);
            }

            ((CommunicationObject)sender).Dispose();
        }
Beispiel #40
0
        /// <summary>
        /// データ受信メソッド
        /// </summary>
        /// <param name="message"></param>

        public override void OnReceivedResponseData(CommunicationObject message)
        {
            try
            {
                var data = message.GetResultData();

                DataTable tbl = (data is DataTable) ? (data as DataTable) : null;

                if (data is DataTable)
                {
                    switch (message.GetMessageName())
                    {
                    //データ取得
                    case TargetTableNm:
                        if (!(乗務員ID > 0))
                        {
                            iChkFlg = 9;
                            break;
                        }

                        if (tbl.Rows.Count > 0)
                        {
                            //編集ステータス表示
                            this.MaintenanceMode = AppConst.MAINTENANCEMODE_EDIT;

                            //rowS01Data = tbl;
                            SetTblData(tbl);

                            int?年月;

                            年月 = ((DateTime)処理年月).Year * 100 + ((DateTime)処理年月).Month;
                            年月 = AppCommon.IntParse(年月.ToString());

                            //マスタ表示
                            base.SendRequest(new CommunicationObject(MessageType.RequestData, S11TableNm_Hendo, new object[] { 乗務員ID, 年月 }));
                            //マスタ表示
                            base.SendRequest(new CommunicationObject(MessageType.RequestData, S11TableNm_Jinken, new object[] { 乗務員ID, 年月 }));
                            //マスタ表示
                            base.SendRequest(new CommunicationObject(MessageType.RequestData, S11TableNm_Kotei, new object[] { 乗務員ID, 年月 }));
                        }
                        else
                        {
                            this.ErrorMessage = "データがありません。";
                            iChkFlg           = 9;
                        }

                        break;

                    //変動データ取得
                    case S11TableNm_Hendo:
                        if (!(乗務員ID > 0))
                        {
                            break;
                        }
                        if (tbl.Rows.Count > 0)
                        {
                            rowHendoData = (List <S13_DRVSB_Member>)AppCommon.ConvertFromDataTable(typeof(List <S13_DRVSB_Member>), tbl);
                            //this.sp変動費.ItemsSource = this.rowHendoData.DefaultView;
                            //this.sp変動費.SelectedItems.Clear();
                        }
                        else
                        {
                            return;
                        }

                        break;

                    //人件データ取得
                    case S11TableNm_Jinken:
                        if (!(乗務員ID > 0))
                        {
                            break;
                        }

                        if (tbl.Rows.Count > 0)
                        {
                            rowJinkenData = (List <S13_DRVSB_Member>)AppCommon.ConvertFromDataTable(typeof(List <S13_DRVSB_Member>), tbl);
                            //this.sp人件費.ItemsSource = this.rowJinkenData.DefaultView;
                            //this.sp人件費.SelectedItems.Clear();
                        }
                        else
                        {
                            return;
                        }
                        break;

                    //固定データ取得
                    case S11TableNm_Kotei:
                        if (!(乗務員ID > 0))
                        {
                            SetFocusToTopControl();
                            this.ErrorMessage = "データがありません。";
                            break;
                        }

                        if (tbl.Rows.Count > 0)
                        {
                            rowKoteiData = (List <S13_DRVSB_Member>)AppCommon.ConvertFromDataTable(typeof(List <S13_DRVSB_Member>), tbl);
                            //this.sp固定経.ItemsSource = this.rowKoteiData.DefaultView;
                            //this.sp固定経.SelectedItems.Clear();
                        }
                        else
                        {
                            SetFocusToTopControl();
                            this.ErrorMessage = "データがありません。";
                            return;
                        }

                        if (iChkFlg == 0)
                        {
                            System.Windows.Forms.Application.DoEvents();
                            Keisan();
                            //キーをfalse
                            ChangeKeyItemChangeable(false);
                            SetFocusToTopControl();
                        }
                        else
                        {
                            SetFocusToTopControl();
                            this.ErrorMessage = "データがありません。";
                            return;
                        }


                        break;

                    case UpdateTable:

                        break;

                    case DeleteTable:
                        ScreenClear();
                        break;
                    //case M04_DRVTableNm:
                    //    string Henkan;
                    //    Henkan = tbl.Rows[0]["T締日"].ToString();
                    //    締日 = AppCommon.IntParse(Henkan);
                    //    break;

                    default:
                        break;
                    }
                }
                else
                {
                    //DataTable tbl = data as DataTable;
                    switch (message.GetMessageName())
                    {
                    case TargetTableNm:
                        iChkFlg = 9;
                        break;

                    case S11TableNm_Hendo:

                        rowS11 = tbl.Rows[0];

                        this.MaintenanceMode = AppConst.MAINTENANCEMODE_ADD;
                        rowS11 = tbl.Rows[0];

                        //キーをfalse
                        ChangeKeyItemChangeable(false);
                        SetFocusToTopControl();

                        break;

                    //人件データ取得
                    case S11TableNm_Jinken:
                        return;

                    //固定データ取得
                    case S11TableNm_Kotei:
                        if (iChkFlg == 9)
                        {
                            this.ErrorMessage = "データがありません。";
                        }
                        return;

                    case UpdateTable:
                        return;

                    case DeleteTable:
                        ScreenClear();
                        break;

                    default:
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                this.ErrorMessage = ex.Message;
            }
        }
Beispiel #41
0
 public Task OpenAsync(TimeSpan timeout)
 {
     return(CommunicationObject.OpenAsync());
 }
Beispiel #42
0
 public void testss()
 {
     CommunicationObject communicationObject = new CommunicationObject("COM3");
     CanMoveServo(21,communicationObject);
 }
Beispiel #43
0
        /// <summary>
        /// データ受信メソッド
        /// </summary>
        /// <param name="message"></param>
        public override void OnReceivedResponseData(CommunicationObject message)
        {
            try
            {
                var data = message.GetResultData();

                DataTable tbl = (data is DataTable) ? (data as DataTable) : null;

                switch (message.GetMessageName())
                {
                //通常データ検索
                case TargetTableNm:
                    StrData(tbl);

                    break;

                //更新処理受信
                case TargetTableNmUpdate:
                    if ((int)data == -1)
                    {
                        MessageBoxResult result = MessageBox.Show("ブランドコード:" + ブランドコード + "は既に使われています。", "確認");
                        break;
                    }
                    MessageBox.Show(AppConst.COMPLETE_UPDATE);
                    //コントロール初期化
                    ScreenClear();
                    break;


                //削除処理受信
                case TargetTableNmDelete:
                    MessageBox.Show(AppConst.COMPLETE_DELETE);
                    //コントロール初期化
                    ScreenClear();
                    break;

                case GetPagingCode:
                    this.ErrorMessage = string.Empty;
                    if (tbl == null)
                    {
                        this.ErrorMessage = "データが見つかりません。";
                        return;
                    }

                    if (tbl.Rows.Count > 0)
                    {
                        //編集ステータス表示
                        this.MaintenanceMode = AppConst.MAINTENANCEMODE_EDIT;
                        ブランドコード = tbl.Rows[0]["ブランドコード"].ToString();
                        ブランド名   = tbl.Rows[0]["ブランド名"].ToString();
                        かな読み    = tbl.Rows[0]["かな読み"].ToString();
                        //キーをfalse
                        ChangeKeyItemChangeable(false);
                        SetFocusToTopControl();
                    }

                    break;
                }
            }
            catch (Exception ex)
            {
                this.ErrorMessage = ex.Message;
            }
        }