public async void Play() { IsPlaying = true; if (!isInitialized) { await Init(); } //毎回USBシリアルを検出するように。 if (serial != null) { await serial.DisposeSerial(); } serial = new SerialUtil(); await serial.InitSerial(); await serial.SendData(new Scene(Scene.Scenes.Arabian, 7)); if (ct.IsCancellationRequested) { tokenSource.Dispose(); tokenSource = new CancellationTokenSource(); ct = tokenSource.Token; } await dispatcher.RunAsync(CoreDispatcherPriority.High, () => { mediaPlayerElement.MediaPlayer.Play(); }); }
/// <summary> /// 消息体序列化 /// </summary> /// <param name="value"></param> /// <returns></returns> public static byte[] encode(object value) { SocketModel model = value as SocketModel; ByteArray ba = new ByteArray();//工具类,将数据转为二进制数组 ba.write(model.type); ba.write(model.area); ba.write(model.command); if (model.message != null) { ba.write(SerialUtil.encode(model.message)); } byte[] result = ba.getBuff(); ba.Close(); return(result); }
public PageControllerModel( PageControllerToken token, ModuleActivator activator, PageControllerReducer reducer, SerialUtil serialUtil, MainReducer mainReducer, WindowPageHost windowPageHost, DatabaseManager databaseManager, DatabaseBackupService databaseBackupService ) { _activator = activator; _windowPageHost = windowPageHost; _databaseManager = databaseManager; _databaseBackupService = databaseBackupService; this._serialUtil = serialUtil; InitHandlers(); ActivateContent(token); this.WhenActivated((c) => { mainReducer.Select(state => state.FullscreenMode) .ObserveOnDispatcher(DispatcherPriority.Background) .Subscribe(isFullScreen => this.MenuVisibility = !isFullScreen) .DisposeWith(c); reducer.Select(state => state.SelectedPage) .Where(LambdaHelper.NotNull) .WithLatestFrom(reducer.Select(state => state.Controls), LambdaHelper.ToTuple) .ObserveOnDispatcher(DispatcherPriority.Background) .Subscribe(tuple => { var(selectedPage, controlsDict) = tuple; var controls = selectedPage == null ? new List <ButtonConfig>() : controlsDict.GetOrDefault(selectedPage.Id) ?? new List <ButtonConfig>(); SetActionButtons(controls); }) .DisposeWith(c); _serialUtil.ConnectionStatus .ObserveOnDispatcher(DispatcherPriority.Background) .Select(status => status.IsConnected) .Subscribe(status => { this.ReaderMenuText = status ? Localization["Отключить считыватель"] : Localization["Включить считыватель"]; }) .DisposeWith(c); }); }
private static SocketModel mdecode(byte[] value) { ByteArray ba = new ByteArray(value); SocketModel model = new SocketModel(); byte type; int area; int command; ba.read(out type); ba.read(out area); ba.read(out command); model.type = type; model.area = area; model.command = command; if (ba.Readnable) { byte[] message; ba.read(out message, ba.Length - ba.Position); model.message = SerialUtil.decode(message); } ba.Close(); return(model); }
public void write(byte type, int area, int command, object message) { ByteArray ba = new ByteArray(); ba.write(type); ba.write(area); ba.write(command); if (message != null) { ba.write(SerialUtil.encode(message)); } ByteArray ba1 = new ByteArray(); ba1.write(ba.Length); ba1.write(ba.getBuff()); try { socket.Send(ba1.getBuff()); } catch (Exception e) { Debug.Log("网络错误,请重新登陆" + e.Message); } }
public SerialComImpl() { serialConfigDAL = new SerialConfigDALImpl(); serialUtil = new SerialUtil(); }
void Awake() { instance = this; }
public StudentCardService(SerialUtil serialUtil) { this.ReadStudentCard = serialUtil.ReadData .Select(strings => new StudentCard(strings)); _subscription = this.ReadStudentCard.Subscribe(Save); }