using BPASmartClient.CustomResource.Pages.Enums;
using BPASmartClient.CustomResource.Pages.Model;
using BPASmartClient.CustomResource.Pages.View;
using BPASmartClient.FoodStationTest.Model;
using BPA.Helper;
using System;
using System.Collections.ObjectModel;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
namespace BPASmartClient.FoodStationTest
{
///
/// Interaction logic for App.xaml
///
public partial class App : Application
{
public static Window MainWindow;
public EventWaitHandle ProgramStarted { get; set; }
protected override void OnStartup(StartupEventArgs e)
{
bool createNew;
ProgramStarted = new EventWaitHandle(false, EventResetMode.AutoReset, "SmallStationApp", out createNew);
if (!createNew)
{
MessageBox.Show("程序已启动");
App.Current.Shutdown();
Environment.Exit(0);
}
SystemHelper.GetInstance.CreateDesktopShortcut();
base.OnStartup(e);
MenuInit();
DataInit();
Init();
MainView mv = new MainView();
//TODO:修改软件名称。
mv.TitleName = "自动化产线-上位机控制系统";
LoginView lv = new LoginView();
var res = lv.ShowDialog();
if (res != null && res == true)
{
MessageNotify.GetInstance.ShowUserLog("用户登录");
mv.Show();
}
else
mv.Close();
GVL_SmallStation.GetInstance.RecipeDosingCompleNum = Json.Data.RecipeDosingCompleNum;
MainWindow = mv;
}
private async void Init()
{
await Task.Run(new Action(() =>
{
DeviceInquire.GetInstance.Init();//配料机设备上线监听,设备列表初始化
ProcessControl.GetInstance.Init();
}));
}
protected override void OnExit(ExitEventArgs e)
{
base.OnExit(e);
Json.Data.RecipeDosingCompleNum = GVL_SmallStation.GetInstance.RecipeDosingCompleNum;
Json.Save();
Json.Save();
Json.Save();
MessageNotify.GetInstance.LogSave();
TaskManage.GetInstance.Dispose();
}
private void MenuInit()
{
//NfcServer.GetInstance.Init();
#region 配方管理菜单
ObservableCollection RecipeManage = new ObservableCollection();
//RecipeManage.Add(new SubMenumodel()
//{
// SubMenuName = "味魔方配方管理",
// SubMenuPermission = new Permission[] { Permission.管理员 },
// AssemblyName = "BPASmartClient.FoodStationTest",
// ToggleWindowPath = "View.RecipeSettingsView"
//});
//RecipeManage.Add(new SubMenumodel()
//{
// SubMenuName = "味魔方配方下发",
// SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员 },
// AssemblyName = "BPASmartClient.FoodStationTest",
// ToggleWindowPath = "View.RecipeControlView"
//});
RecipeManage.Add(new SubMenumodel()
{
SubMenuName = "本地配方管理",
SubMenuPermission = new Permission[] { Permission.管理员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.RecipeReceiveView"
});
RecipeManage.Add(new SubMenumodel()
{
SubMenuName = "西门子配方管理",
SubMenuPermission = new Permission[] { Permission.管理员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.SiemensRecipeReceiveView"
});
MenuManage.GetInstance.menuModels.Add(new MenuModel()
{
MainMenuIcon = "",
MainMenuName = "配方管理",
Alias = "Recipe Management",
subMenumodels = RecipeManage,
});
#endregion
#region 参数设置
ObservableCollection ParSet = new ObservableCollection();
ParSet.Add(new SubMenumodel()
{
SubMenuName = "味魔方参数设置",
SubMenuPermission = new Permission[] { Permission.管理员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.DeviceMaterialParView"
});
ParSet.Add(new SubMenumodel()
{
SubMenuName = "系统参数设置",
SubMenuPermission = new Permission[] { Permission.管理员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.SystemParView"
});
ParSet.Add(new SubMenumodel()
{
SubMenuName = "原料与料仓管理",
SubMenuPermission = new Permission[] { Permission.管理员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.StockBinRawMaterialView"
});
ParSet.Add(new SubMenumodel()
{
SubMenuName = "西门子物料管理",
SubMenuPermission = new Permission[] { Permission.管理员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.BomOfMaterialView"
});
MenuManage.GetInstance.menuModels.Add(new MenuModel()
{
MainMenuIcon = "",
MainMenuName = "参数设置",
Alias = "Parameter Set",
subMenumodels = ParSet,
});
#endregion
#region 手动控制
ObservableCollection ManualControl = new ObservableCollection();
ManualControl.Add(new SubMenumodel()
{
SubMenuName = "手动控制硬件",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.ManualControlView"
});
/*ManualControl.Add(new SubMenumodel()
{
SubMenuName = "手动控制信号",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.ManualCommView"
});*/
ManualControl.Add(new SubMenumodel()
{
SubMenuName = "手动控制流程",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.ManualFlowView"
});
MenuManage.GetInstance.menuModels.Add(new MenuModel()
{
MainMenuIcon = "",
MainMenuName = "手动控制",
Alias = "Parameter Set",
subMenumodels = ManualControl,
});
#endregion
#region 消息日志
ObservableCollection InfoLog = new ObservableCollection();
InfoLog.Add(new SubMenumodel()
{
SubMenuName = "操作日志",
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.UserLogView"
});
InfoLog.Add(new SubMenumodel()
{
SubMenuName = "运行日志",
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.RunLogView"
});
InfoLog.Add(new SubMenumodel()
{
SubMenuName = "配方日志",
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.RecipeCompleteView"
});
InfoLog.Add(new SubMenumodel()
{
SubMenuName = "报警记录",
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.AlarmView"
});
InfoLog.Add(new SubMenumodel()
{
SubMenuName = "调试日志",
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.DebugLogView"
});
MenuManage.GetInstance.menuModels.Add(new MenuModel()
{
MainMenuIcon = "",
MainMenuName = "消息日志",
Alias = "Message Log",
subMenumodels = InfoLog,
});
#endregion
#region 硬件设备监控
ObservableCollection DeviceMonitor = new ObservableCollection();
DeviceMonitor.Add(new SubMenumodel()
{
SubMenuName = "原料设备列表",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.DeviceListView"
});
DeviceMonitor.Add(new SubMenumodel()
{
SubMenuName = "Plc变量监控",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.PlcVarMonitorView"
});
DeviceMonitor.Add(new SubMenumodel()
{
SubMenuName = "流程变量监控",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.ProcessMonitorView"
});
DeviceMonitor.Add(new SubMenumodel()
{
SubMenuName = "设备状态",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
AssemblyName = "BPASmartClient.FoodStationTest",
ToggleWindowPath = "View.HardwareStatusView"
});
MenuManage.GetInstance.menuModels.Add(new MenuModel()
{
MainMenuIcon = "",
MainMenuName = "设备监控",
Alias = "Device Monitor",
subMenumodels = DeviceMonitor,
});
#endregion
#region 用户管理
ObservableCollection UserManager = new ObservableCollection();
UserManager.Add(new SubMenumodel()
{
SubMenuName = "用户登录",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.SubPagLoginView"
});
UserManager.Add(new SubMenumodel()
{
SubMenuName = "密码修改",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.PasswordChangeView"
});
UserManager.Add(new SubMenumodel()
{
SubMenuName = "用户管理",
SubMenuPermission = new Permission[] { Permission.管理员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.UserManagerView"
});
/* UserManager.Add(new SubMenumodel()
{
SubMenuName = "NFC登录设置",
SubMenuPermission = new Permission[] { Permission.管理员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.NfcSetView"
});*/
MenuManage.GetInstance.menuModels.Add(new MenuModel()
{
MainMenuIcon = "",
MainMenuName = "用户管理",
Alias = "User Management",
subMenumodels = UserManager,
});
#endregion
}
private void DataInit()
{
//Config.GetInstance.Init();
Json.Read();
Json.Read();
Json.Read();
Json.Read();
}
}
}