Exemple #1
0
        public BoardPoint Post(AiConfig aiConfig)
        {
            IAi ai    = CreateAiObject(aiConfig.TurnPiece, aiConfig.AiName);
            var board = aiConfig.GetBoard();

            return(ai.HitPiece(board));
        }
 public AI64 Ai64web(AiConfig config)
 {
     using (var conn = new MySqlConnection(Webscsb.ConnectionString))
     {
         string sql  = "SELECT * FROM Ai64 WHERE CaseNo = @CaseNo AND AiNo = @AiNo";
         var    data = conn.QuerySingle <AI64>(sql, new { config.CaseNo, config.AiNo });
         return(data);
     }
 }
Exemple #3
0
 /// <summary>
 ///  AiConfig新增
 /// </summary>
 /// <param name="setting"></param>
 public void Insert_AiConfig(AiConfig setting)
 {
     try
     {
         using (var Conn = new MySqlConnection(scsb.ConnectionString))
         {
             string sql = "INSERT IGNORE INTO AiConfig (CaseNo,AiNo,Ai,AiName,Aiunit,AicalculateFlag,CompareFlag,AiMax,AiMin,EnumFlag,Enum_Array)" +
                          " VALUES(@CaseNo,@AiNo,@Ai,@AiName,@Aiunit,@AicalculateFlag,@CompareFlag,@AiMax,@AiMin,@EnumFlag,@Enum_Array) ";
             Conn.Execute(sql, setting);
         }
     }
     catch (Exception ex)
     {
         Log.Error(ex, "AiConfig新增" + "錯誤(Ewatch)");
     }
 }
 /// <summary>
 ///  AiConfig新增
 /// </summary>
 /// <param name="setting"></param>
 public void Insert_AiConfig(AiConfig setting)
 {
     try
     {
         using (var Conn = new MySqlConnection(scsb.ConnectionString))
         {
             string sql = "INSERT IGNORE INTO AiConfig (DeviceTypeEnum,AINo,CharAddress,AIName,Aiunit,Ratio,AnalysisMothed,Enum_Array)" +
                          " VALUES(@DeviceTypeEnum,@AINo,@CharAddress,@AIName,@Aiunit,@Ratio,@AnalysisMothed,@Enum_Array) ";
             Conn.Execute(sql, setting);
         }
     }
     catch (Exception ex)
     {
         Log.Error(ex, "AiConfig新增" + "錯誤(ChungHsin)");
     }
 }
Exemple #5
0
 /// <summary>
 /// 讀取AI64即時資訊(Web)
 /// </summary>
 /// <param name="config"></param>
 /// <returns></returns>
 public AI64 Ai64web(AiConfig config)
 {
     try
     {
         using (var conn = new MySqlConnection(Webscsb.ConnectionString))
         {
             string sql  = "SELECT * FROM Ai64 WHERE CaseNo = @CaseNo AND AiNo = @AiNo";
             var    data = conn.QuerySingle <AI64>(sql, new { config.CaseNo, config.AiNo });
             return(data);
         }
     }
     catch (Exception ex)
     {
         Log.Error(ex, "讀取AI64即時資訊(Web)" + "錯誤(Ewatch)");
         return(null);
     }
 }
Exemple #6
0
        private async void OnTimedEvent(Object source, ElapsedEventArgs e)
        {
            var aiConfig = new AiConfig(boardState.Board, boardState.TurnPiece, GetAiName());
            var result   = await Http.PostAsJsonAsync("Ai", aiConfig);

            var boardPoint = await result.Content.ReadFromJsonAsync <BoardPoint>();

            Console.WriteLine($"AiName:{GetAiName()}");
            Console.WriteLine($"X:{boardPoint.X} Y:{boardPoint.Y}");
            boardState.ExecuteTurn(boardPoint);
            StateHasChanged();

            if (boardState.GetPossibleSetStoneCount(Piece.Black) == 0 &&
                boardState.GetPossibleSetStoneCount(Piece.White) == 0)
            {
                timer.Stop();
            }
        }
 public AiLogRequest(int sequence, AiConfig aiConfig, string action)
 {
     Name               = $"Microsoft.ApplicationInsights.{aiConfig.InstrumentationKey}.{action}";
     Time               = $"{DateTime.UtcNow:O}";
     Sequence           = sequence.ToString("0000000000");
     InstrumentationKey = aiConfig.InstrumentationKey;
     Tags               = new AiTags
     {
         OSVersion          = aiConfig.XTBVersion,
         DeviceType         = aiConfig.PluginName,
         ApplicationVersion = aiConfig.PluginVersion,
         SessionId          = aiConfig.SessionId.ToString(),
         OperationName      = aiConfig.OperationName
     };
     Data = new AiData
     {
         BaseType = $"{action}Data",
         BaseData = new AiBaseData()
     };
 }
        private void ChangesimpleButton_Click(object sender, EventArgs e)
        {
            AiConfig aiConfig = new AiConfig()
            {
                CaseNo          = CaseNotextEdit.Text,
                AiNo            = Convert.ToInt32(AiNotextEdit.Text),
                AiName          = AiNametextEdit.Text,
                Ai              = AitextEdit.Text,
                AiCalculateFlag = AicalculateFlagtoggleSwitch.IsOn,
                Aiunit          = AiunittextEdit.Text,
                CompareFlag     = CompareFlagFlagtoggleSwitch.IsOn,
                AiMax           = Convert.ToDecimal(AiMaxtextEdit.Text),
                AiMin           = Convert.ToDecimal(AiMintextEdit.Text),
                EnumFlag        = EnumFlagtoggleSwitch.IsOn,
                Enum_Array      = Enum_ArraytextEdit.Text
            };

            Ewatch_MySqlMethod.Update_AiConfig(aiConfig);
            Search_Setting();
        }
        private void SavesimpleButton_Click(object sender, EventArgs e)
        {
            AiConfig aiConfig = new AiConfig()
            {
                CaseNo          = CaseNotextEdit.Text,
                AiNo            = Convert.ToInt32(AiNotextEdit.Text),
                AiName          = AiNametextEdit.Text,
                Ai              = AitextEdit.Text,
                AiCalculateFlag = AicalculateFlagtoggleSwitch.IsOn,
                Aiunit          = AiunittextEdit.Text,
                CompareFlag     = CompareFlagFlagtoggleSwitch.IsOn,
                AiMax           = Convert.ToDecimal(AiMaxtextEdit.Text),
                AiMin           = Convert.ToDecimal(AiMintextEdit.Text),
                EnumFlag        = EnumFlagtoggleSwitch.IsOn,
                Enum_Array      = Enum_ArraytextEdit.Text,
            };

            Ewatch_MySqlMethod.Insert_AiConfig(aiConfig);
            caseUserControl.Search_Setting();
            caseUserControl.FlyoutFlag = false;
            caseUserControl.flyout.Close();
        }
 /// <summary>
 /// AiConfig更新
 /// </summary>
 /// <param name="setting"></param>
 public void Update_AiConfig(AiConfig setting)
 {
     try
     {
         using (var Conn = new MySqlConnection(scsb.ConnectionString))
         {
             string sql = "UPDATE AiConfig SET " +
                          "AIName = @AIName," +
                          "Aiunit = @Aiunit," +
                          "CharAddress = @CharAddress," +
                          "Ratio = @Ratio," +
                          "AnalysisMothed = @AnalysisMothed," +
                          "Enum_Array = @Enum_Array" +
                          " WHERE AINo = @AINo AND DeviceTypeEnum = @DeviceTypeEnum";
             Conn.Execute(sql, setting);
         }
     }
     catch (Exception ex)
     {
         Log.Error(ex, "AiConfig更新" + "錯誤(ChungHsin)");
     }
 }
Exemple #11
0
 /// <summary>
 /// AiConfig更新
 /// </summary>
 /// <param name="setting"></param>
 public void Update_AiConfig(AiConfig setting)
 {
     try
     {
         using (var Conn = new MySqlConnection(scsb.ConnectionString))
         {
             string sql = "UPDATE AiConfig SET " +
                          "AiName = @AiName," +
                          "Aiunit = @Aiunit," +
                          "AicalculateFlag = @AicalculateFlag," +
                          "CompareFlag = @CompareFlag," +
                          "AiMax = @AiMax," +
                          "AiMin = @AiMin," +
                          "EnumFlag = @EnumFlag," +
                          "Enum_Array = @Enum_Array" +
                          " WHERE CaseNo = @CaseNo AND AiNo = @AiNo AND Ai = @Ai";
             Conn.Execute(sql, setting);
         }
     }
     catch (Exception ex)
     {
         Log.Error(ex, "AiConfig更新" + "錯誤(Ewatch)");
     }
 }
 public AppInsights(AiConfig aiConfig)
 {
     _aiConfig = aiConfig;
 }
Exemple #13
0
 /// <summary>
 /// Initializes Application Insights instance.
 /// When called from a tool, make sure to pass Assembly.GetExecutingAssembly() as loggingassembly parameter!!
 /// </summary>
 /// <param name="endpoint">AppInsights endpoint, usually https://dc.services.visualstudio.com/v2/track</param>
 /// <param name="ikey">Instrumentation Key for the AppInsights instance in the Azure portal</param>
 /// <param name="loggingassembly">Assembly info to include in logging, usually pass Assembly.GetExecutingAssembly()</param>
 /// <param name="toolname">Override name of the tool, defaults to last part of the logging assembly name</param>
 public AppInsights(string endpoint, string ikey, Assembly loggingassembly, string toolname = null)
 {
     _aiConfig = new AiConfig(endpoint, ikey, loggingassembly, toolname);
 }
Exemple #14
0
 /// <summary>
 /// 上下限比較紀錄
 /// </summary>
 /// <param name="config">AI點為設定資訊</param>
 public decimal Alarm_Procedure(AiConfig config, AI64 aI64)
 {
     try
     {
         decimal[] value = new decimal[64];
         using (var conn = new MySqlConnection(Logscsb.ConnectionString))
         {
             string Procedure = "AiAlarmProcedure";
             int    i         = 0;
             value[i] = aI64.Ai1; i++;
             value[i] = aI64.Ai2; i++;
             value[i] = aI64.Ai3; i++;
             value[i] = aI64.Ai4; i++;
             value[i] = aI64.Ai5; i++;
             value[i] = aI64.Ai6; i++;
             value[i] = aI64.Ai7; i++;
             value[i] = aI64.Ai8; i++;
             value[i] = aI64.Ai9; i++;
             value[i] = aI64.Ai10; i++;
             value[i] = aI64.Ai11; i++;
             value[i] = aI64.Ai12; i++;
             value[i] = aI64.Ai13; i++;
             value[i] = aI64.Ai14; i++;
             value[i] = aI64.Ai15; i++;
             value[i] = aI64.Ai16; i++;
             value[i] = aI64.Ai17; i++;
             value[i] = aI64.Ai18; i++;
             value[i] = aI64.Ai19; i++;
             value[i] = aI64.Ai20; i++;
             value[i] = aI64.Ai21; i++;
             value[i] = aI64.Ai22; i++;
             value[i] = aI64.Ai23; i++;
             value[i] = aI64.Ai24; i++;
             value[i] = aI64.Ai25; i++;
             value[i] = aI64.Ai26; i++;
             value[i] = aI64.Ai27; i++;
             value[i] = aI64.Ai28; i++;
             value[i] = aI64.Ai29; i++;
             value[i] = aI64.Ai30; i++;
             value[i] = aI64.Ai31; i++;
             value[i] = aI64.Ai32; i++;
             value[i] = aI64.Ai33; i++;
             value[i] = aI64.Ai34; i++;
             value[i] = aI64.Ai35; i++;
             value[i] = aI64.Ai36; i++;
             value[i] = aI64.Ai37; i++;
             value[i] = aI64.Ai38; i++;
             value[i] = aI64.Ai39; i++;
             value[i] = aI64.Ai40; i++;
             value[i] = aI64.Ai41; i++;
             value[i] = aI64.Ai42; i++;
             value[i] = aI64.Ai43; i++;
             value[i] = aI64.Ai44; i++;
             value[i] = aI64.Ai45; i++;
             value[i] = aI64.Ai46; i++;
             value[i] = aI64.Ai47; i++;
             value[i] = aI64.Ai48; i++;
             value[i] = aI64.Ai49; i++;
             value[i] = aI64.Ai50; i++;
             value[i] = aI64.Ai51; i++;
             value[i] = aI64.Ai52; i++;
             value[i] = aI64.Ai53; i++;
             value[i] = aI64.Ai54; i++;
             value[i] = aI64.Ai55; i++;
             value[i] = aI64.Ai56; i++;
             value[i] = aI64.Ai57; i++;
             value[i] = aI64.Ai58; i++;
             value[i] = aI64.Ai59; i++;
             value[i] = aI64.Ai60; i++;
             value[i] = aI64.Ai61; i++;
             value[i] = aI64.Ai62; i++;
             value[i] = aI64.Ai63; i++;
             value[i] = aI64.Ai64;
             conn.Execute(Procedure, new { nowTime = aI64.ttime, CaseNo1 = config.CaseNo, AiNo1 = config.AiNo, Ai1 = config.Ai, NowData = value[Convert.ToInt32(System.Text.RegularExpressions.Regex.Replace(config.Ai, @"[^0-9]+", "")) - 1] }, commandType: System.Data.CommandType.StoredProcedure);
         }
         return(value[Convert.ToInt32(System.Text.RegularExpressions.Regex.Replace(config.Ai, @"[^0-9]+", "")) - 1]);
     }
     catch (Exception ex)
     {
         Log.Error(ex, "上下限比較紀錄" + "錯誤(Ewatch)");
         return(0);
     }
 }