private void UpdateEditStatus(DataGridViewCell cell) { var error_text = ""; /* エラー判定 */ switch ((ColumnId)cell.OwningColumn.Index) { case ColumnId.Expression: { var value_str = cell.Value as string; if ((value_str != null) && (value_str.Length > 0) ) { if (PacketFilterController.Build(value_str) != null) { cell.Style.BackColor = COLOR_COMMAND_FORMAT_OK; } else { cell.Style.BackColor = COLOR_COMMAND_FORMAT_NG; } } } break; default: break; } /* エラーテキストを設定 */ cell.ErrorText = error_text; }
private void Apply(bool redraw_req = true) { filter_exp_busy_ = filter_exp_new_; filter_obj_busy_ = filter_obj_new_; UpdateView(); viewm_.RedrawPacket(); }
private void Apply() { filter_exp_busy_ = filter_exp_new_; filter_obj_busy_ = filter_obj_new_; UpdateView(); /* 変換器反映 */ UpdateConvertStatus(); }
public void UpdateFilter() { if (Property.TargetFilterEnable.Value) { filter_obj_ = PacketFilterController.Build(Property.TargetFilterValue.Value); } else { filter_obj_ = null; } }
internal void StartAsync() { Stop(); /* 進捗初期化 */ cancel_req_ = false; Success = false; ProgressMax = 1; ProgressNow = 1; /* 送信ログファイル取得 */ var info = FileManager.PacketLogOpen.GetReadControllerFromPath(FilePath); if ((info == null) || (info.Format == null)) { return; } var reader = info.Format.CreateReader() as PacketLogReader; if (reader == null) { return; } if (!reader.Open(info.Option, info.FilePath)) { return; } /* フィルターモジュール生成 */ var filter_obj = PacketFilterController.Build(Filter); if (filter_obj == null) { return; } /* 送信先ゲート取得 */ var gate_objs = GateManager.FindGateObjectFromWildcardAlias(GateAlias); if (gate_objs == null) { return; } /* 送信タスク開始 */ ar_task_ = (new ExecTaskHandler(ExecTask)).BeginInvoke( gate_objs, filter_obj, reader, null, null); }
private WatchObject LoadWatchObject(DataGridViewRow row_obj) { if ((row_obj == null) || (row_obj.IsNewRow) ) { return(null); } /* 現在のセル設定をWatchDataConfigに変換する */ var config = LoadWatchDataConfig(row_obj); /* 変換できなかったり有効設定でない場合は監視しない */ if ((config == null) || (!config.Enable) ) { return(null); } /* フィルターが有効でない場合は監視しない */ var filter = PacketFilterController.Build(config.Expression); if (filter == null) { return(null); } /* 監視オブジェクト更新 */ var watch_obj = row_obj.Tag as WatchObject; if ((watch_obj == null) || (watch_obj.Config.Expression != config.Expression) ) { watch_obj = new WatchObject(config, filter); } else { watch_obj.Config.WatchTarget = config.WatchTarget; watch_obj.Config.NtfEvent = config.NtfEvent; watch_obj.Config.NtfDialog = config.NtfDialog; watch_obj.Config.NtfMail = config.NtfMail; } return(watch_obj); }
private void PlayRecord(GateObject[] gates, PacketFilterController filter, PacketLogReader reader) { ProgressMax = (uint)reader.ProgressMax; ProgressNow = (uint)reader.ProgressNow; var packet_busy = LoadPlayPacket(reader, filter); var packet_next = (PacketObject)null; var delay_timer = new System.Diagnostics.Stopwatch(); var delay_value = 0; while ((!cancel_req_) && (packet_busy != null)) { /* 次のデータ送信までの遅延 */ while ((delay_timer.IsRunning) && (delay_timer.ElapsedMilliseconds < delay_value)) { if (delay_timer.ElapsedMilliseconds > 10) { System.Threading.Thread.Sleep(1); } } /* パケット送信 */ delay_timer.Restart(); foreach (var gate in gates) { gate.SendRequest(packet_busy.Data); } /* 次のパケットを取得 */ packet_next = LoadPlayPacket(reader, filter); if (packet_next != null) { delay_value = (int)(packet_next.MakeTime - packet_busy.MakeTime).TotalMilliseconds + SEND_TIMMING_MARGIN; } packet_busy = packet_next; ProgressNow = (uint)reader.ProgressNow; } ProgressNow = (uint)reader.ProgressNow; reader.Close(); }
private void DGView_WatchList_EditCell_Command_TextChanged(object sender, EventArgs e) { var control = sender as DataGridViewTextBoxEditingControl; if (control == null) { return; } var value = control.Text; /* 表示更新 */ if ((value != null) && (value.Length > 0)) { control.BackColor = (PacketFilterController.Build(value) != null) ? (COLOR_COMMAND_FORMAT_OK) : (COLOR_COMMAND_FORMAT_NG); } else { control.BackColor = Color.White; } }
internal void StartAsync() { Stop(); /* 進捗初期化 */ DetectPacketCount = 0; /* フィルターモジュール生成 */ filter_obj_ = PacketFilterController.Build(CaptureFilter); if (filter_obj_ == null) { return; } /* 監視イベント登録 */ RegisterWatchEvent(); /* 監視開始 */ cancel_req_ = false; run_state_ = true; }
private PacketObject LoadPlayPacket(PacketLogReader reader, PacketFilterController filter) { var packet = (PacketObject)null; while ((packet = reader.ReadPacket()) != null) { /* データパケット以外は無視 */ if (packet.Attribute != PacketAttribute.Data) { continue; } /* フィルターに合致しないパケットは無視 */ if (!filter.Input(packet)) { continue; } return(packet); } return(null); }
private void UpdateView() { /* 表示中のフィルター式をコンパイル */ filter_exp_new_ = CBox_Exp.Text; filter_obj_new_ = PacketFilterController.Build(filter_exp_new_); /* 表示更新 */ if (filter_exp_new_.Length > 0) { CBox_Exp.BackColor = (filter_obj_new_ != null) ? (Ratatoskr.Resource.AppColors.Ok) : (Ratatoskr.Resource.AppColors.Ng); } else { CBox_Exp.BackColor = Color.White; } /* 変更状態確認 */ CBox_Exp.ForeColor = (filter_exp_busy_ != filter_exp_new_) ? (Color.Gray) : (Color.Black); }
private void ExecTask(GateObject[] gates, PacketFilterController filter, PacketLogReader reader) { PlayRecord(gates, filter, reader); Success = (!cancel_req_); }
public WatchObject(WatchDataConfig config, PacketFilterController filter) { Config = config; filter_ = filter; }
public static bool CheckFilter(string filter) { return(PacketFilterController.Build(filter) != null); }