using CsuWebApiLib;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace ApiTest
{
///
/// MainWindow.xaml 的互動邏輯
///
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
uxIp.Text = "192.168.100.1";
uxAccount.Text = "account";
uxPass.Text = "password";
#if DEBUG
uxIp.Text = "192.168.80.129";
uxAccount.Text = "zerova";
uxPass.Text = "t6sji4j83";
#endif
}
private async void GetVersion_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvApi.GetVersion();
//var result = await EvApi.GetTelcomModemFwRev();
uxResult.Text = result.Response;
}
private async void GetSystem_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvHttpClient.GetQueryActionOpt1String();
uxResult.Text = result.Msg;
}
private async void GetCharging_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvHttpClient.GetQueryActionOpt2String();
uxResult.Text = result.Msg;
}
private async void GetNetwrok_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvHttpClient.GetQueryActionOpt3String();
uxResult.Text = result.Msg;
}
private async void GetBackend_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvHttpClient.GetQueryActionOpt4String();
uxResult.Text = result.Msg;
}
private async void EnableAuth_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvApi.SetAuthorisationMode(isAuthRequired: true);
uxResult.Text = result.Response;
}
private async void DisableAuth_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvApi.SetAuthorisationMode(isAuthRequired: false);
uxResult.Text = result.Response;
}
private async void SetSystem_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var dlg = new SetConfigDlg() { Owner = this };
dlg.ShowDialog();
if (dlg.DialogResult != true)
return;
var result = await EvHttpClient.SetSystemAction(dlg.Key, dlg.Val);
uxResult.Text = result.Msg;
}
private async void GetTelcom_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvApi.GetTelcomSubSimStatus();
uxResult.Text = JsonConvert.SerializeObject(result.Result);
}
private async void UploadFirmware_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvHttpClient.GetUploadfirmwareResultString(new List() {
//System.IO.Path.GetFullPath("fake.txt"),
//System.IO.Path.GetFullPath("fake.txt")
System.IO.Path.GetFullPath("DOWU362000D4OL_DO360_V2.10_0_CRC=C5CD06B4.gz"),
//System.IO.Path.GetFullPath("CSU_V3.06_CRC=54D4A562.gz")
});
//var result = await EvApi.SignalUpdateFirmware(); ;
uxResult.Text = JsonConvert.SerializeObject(result);
}
private void TryUpdateConfig()
{
if (!string.IsNullOrEmpty(uxAccount.Text))
{
EvHttpClient.Account = uxAccount.Text;
}
if (!string.IsNullOrEmpty(uxPass.Text))
{
EvHttpClient.Pass = uxPass.Text;
}
EvHttpClient.ResetServerIpAddress(uxIp.Text);
}
private async void ReStart_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvApi.Restart();
uxResult.Text = JsonConvert.SerializeObject(result.Result);
}
private async void BtnStatus_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvApi.GetButtonStatus();
uxResult.Text = JsonConvert.SerializeObject(result.Result);
}
private async void SetWifiStation_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvApi.SetWifiStationMode(uxP0.Text, uxP1.Text);
uxResult.Text = JsonConvert.SerializeObject(result.Response);
}
private async void SetTelcom_Click(object sender, RoutedEventArgs e)
{
TryUpdateConfig();
var result = await EvApi.SetTelcomEnabled(true);
uxResult.Text = JsonConvert.SerializeObject(result.Response);
}
}
}