예제 #1
0
        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();
            });
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        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);
            });
        }
예제 #4
0
    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);
    }
예제 #5
0
    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);
        }
    }
예제 #6
0
 public SerialComImpl()
 {
     serialConfigDAL = new SerialConfigDALImpl();
     serialUtil      = new SerialUtil();
 }
예제 #7
0
 void Awake()
 {
     instance = this;
 }
예제 #8
0
 public StudentCardService(SerialUtil serialUtil)
 {
     this.ReadStudentCard = serialUtil.ReadData
                            .Select(strings => new StudentCard(strings));
     _subscription = this.ReadStudentCard.Subscribe(Save);
 }