示例#1
0
        private void finish(EventSocketSendProgram eventData)
        {
            var    ticket    = eventData.Ticket;
            string counterID = "";

            counterID = ticket.counter_id;
            var        objAudioFinish  = new ObjectAudio("", "", "", "", counterID);
            EventAudio eventSendFinish = new EventAudio(eventData.Action, null, null, objAudioFinish);

            DataReceived(eventSendFinish);
        }
示例#2
0
        public void Received(string str)
        {
            var handle = str.Split(' ')[0].Trim('/');
            var data   = str.Remove(0, str.IndexOf(' '));

            log.sendLog("handle " + handle);
            ObjectSend objSend = null;

            switch (handle)
            {
            case ActionTicket.INITIAL:
                if (dicAllCounters.Count() == 0)
                {
                    string  action1  = ActionTicket.INITIAL;
                    Initial dataUser = JsonConvert.DeserializeObject <Initial>(data);
                    addDicSrcCounter(dataUser.Services, dataUser.Counters);

                    objSend = setDataToObjectSend(dataUser, null, ActionTicket.INITIAL);
                    EventSocketSendProgram even = new EventSocketSendProgram(action1, dicAllServices, dicAllCounters, objSend);

                    Thread.Sleep(2000);
                    DataReceived(even);
                }
                break;

            case ActionTicket.TICKET_ACTION:
                var    tkAc   = JsonConvert.DeserializeObject <TicketAction>(data);
                string action = tkAc.Action;
                if (ActionTicket.ACTION_CREATE.Equals(action) || ActionTicket.ACTION_CANCEL.Equals(action))
                {
                    InitialCreate dataz   = JsonConvert.DeserializeObject <InitialCreate>(data);
                    Initial       tickets = new Initial();
                    tickets.Tickets.Add(dataz.ticket.Id, dataz.ticket);
                    objSend = setDataToObjectSend(tickets, null, action);
                }
                else
                {
                    objSend = setDataToObjectSend(null, tkAc, tkAc.Action);
                }

                if (!ActionTicket.ACTION_CREATE.Equals(action))
                {
                    EventSocketSendProgram even1 = new EventSocketSendProgram(action, null, null, objSend);
                    DataReceived(even1);
                }
                break;

            default:
                break;
            }
        }
示例#3
0
 void call(EventSocketSendProgram eventData)
 {
     if (eventData != null && eventData.Ticket != null && !string.IsNullOrWhiteSpace(eventData.Ticket.id))
     {
         var ticketID = eventData.Ticket.id;
         if (!checkExistNum(ticketID))
         {
             var counterID  = eventData.Ticket.counter_id;
             var counterNum = dicCounter[counterID].Data.Cnum;
             var objAudio   = new ObjectAudio(eventData.Ticket.cnum, counterNum + "", ticketID, eventData.Ticket.lang, counterID);
             mQueue.WaitOne();
             this.sendQueueByNum.Enqueue(objAudio);
             mQueue.ReleaseMutex();
             EventAudio eventSendFinish = new EventAudio(eventData.Action, null, null, objAudio);
             DataReceived(eventSendFinish);
         }
     }
 }
示例#4
0
        private void ReciveDataSocket(EventSocketSendProgram eventData)
        {
            try
            {
                switch (eventData.Action)
                {
                case ActionTicket.INITIAL:
                    dicCounter = sortCounter(eventData.DicAllCounter);
                    EventAudio eventSend = new EventAudio(ActionTicket.INITIAL, eventData.DicAllCounter, eventData.DicServing, null);
                    Thread.Sleep(2000);
                    DataReceived(eventSend);
                    return;

                case ActionTicket.ASSETS:
                    voice = eventData.Voice;
                    loadAudio(urlFolderAudio);
                    Thread.Sleep(200);
                    return;

                case ActionTicket.ACTION_CALL: call(eventData); return;

                case ActionTicket.ACTION_RECALL: call(eventData); return;

                case ActionTicket.ACTION_CANCEL: finish(eventData); return;

                case ActionTicket.ACTION_MOVE: finish(eventData); return;

                case ActionTicket.ACTION_FINISH: finish(eventData); return;

                case ActionTicket.RELOAD:
                    SetThreadExecutionState(ES_CONTINUOUS);
                    tPlayAudio.Abort();
                    EventAudio eventSendRe = new EventAudio(ActionTicket.RELOAD, null, null, null);
                    DataReceived(eventSendRe);
                    return;

                default:
                    return;
                }
            }
            catch
            {
            }
        }
示例#5
0
        public void Received(string str)
        {
            var handle = str.Split(' ')[0].Trim('/');
            var data   = str.Remove(0, str.IndexOf(' '));

            Console.WriteLine("handle " + handle);
            try
            {
                switch (handle)
                {
                case ActionTicket.INITIAL:
                    if (isInitial)
                    {
                        Initial dataUser = JsonConvert.DeserializeObject <Initial>(data);
                        EventSocketSendProgram eventSend = new EventSocketSendProgram(ActionTicket.INITIAL, null, dataUser.Counters, dataUser.Serving, null);
                        Thread.Sleep(2000);
                        DataReceived(eventSend);
                    }
                    break;

                case ActionTicket.ASSETS:
                    if (isInitial)
                    {
                        isInitial = false;
                        var voice = JsonConvert.DeserializeObject <List <Asset> >(data);
                        if (voice.Count() > 0)
                        {
                            EventSocketSendProgram eventSend1 = new EventSocketSendProgram(ActionTicket.ASSETS, null, null, null, voice[0].voice);
                            DataReceived(eventSend1);
                        }
                    }
                    break;

                case ActionTicket.TICKET_ACTION:
                    var    tkAc   = JsonConvert.DeserializeObject <TicketActionRecive>(data);
                    string action = tkAc.action;
                    switch (action)
                    {
                    case ActionTicket.ACTION_FEEDBACK: break;

                    case ActionTicket.ACTION_MOVE:
                        Ticket tk = tkAc.ticket;
                        tk.counter_id = tkAc.counter_id;
                        EventSocketSendProgram eventSendMove = new EventSocketSendProgram(action, tk, null, null, null);
                        DataReceived(eventSendMove); break;

                    case ActionTicket.ACTION_FINISH:
                    case ActionTicket.ACTION_CANCEL:
                    case ActionTicket.ACTION_RECALL:
                    case ActionTicket.ACTION_CALL:
                        string counterID = tkAc.ticket.counter_id;
                        string cnum      = tkAc.ticket.cnum;
                        string ticketID  = tkAc.ticket.id;
                        EventSocketSendProgram eventSendTK = new EventSocketSendProgram(action, tkAc.ticket, null, null, null);
                        DataReceived(eventSendTK);
                        break;

                    default:
                        break;
                    }
                    break;

                case ActionTicket.RELOAD:
                    isReload = true;
                    SetThreadExecutionState(ES_CONTINUOUS);
                    Thread.Sleep(500);
                    EventSocketSendProgram eventSendReload = new EventSocketSendProgram(ActionTicket.RELOAD, null, null, null, null);
                    DataReceived(eventSendReload);
                    CloseSocket();    // khi close sẽ tự mở
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Loi send data" + ex.Message);
            }
        }
示例#6
0
        private static void ReciveDataSocket(EventSocketSendProgram eventData)
        {
            int command = 0;

            switch (eventData.Action)
            {
            case ActionTicket.INITIAL:
                if (dicCounter.Count() == 0 && dicService.Count() == 0)
                {
                    InitKeyBoardSend(eventData.DicCounter, eventData.DicService);
                }
                return;

            case ActionTicket.ACTION_CREATE:    // không làm gì
                break;

            case ActionTicket.ACTION_CALL:
                command = (int)CheckByteSend.BYTE_COMMAND.NEXT_COMMAND;
                break;

            case ActionTicket.ACTION_RECALL:
                command = (int)CheckByteSend.BYTE_COMMAND.RECALL_COMMAND;
                break;

            case ActionTicket.ACTION_RESTORE:
                command = (int)CheckByteSend.BYTE_COMMAND.RESTORE_COMMAND;
                break;

            case ActionTicket.ACTION_MOVE:
                command = (int)CheckByteSend.BYTE_COMMAND.FORWARD_COMMAND_COUNTER;
                command = (int)CheckByteSend.BYTE_COMMAND.FORWARD_COMMAND_SERVICE;
                break;

            case ActionTicket.ACTION_CANCEL:
                command = (int)CheckByteSend.BYTE_COMMAND.DELETE_COMMAND;
                break;

            case ActionTicket.ACTION_FINISH:
                command = (int)CheckByteSend.BYTE_COMMAND.FINISH_COMMAND;
                break;

            default:
                //bug
                break;
            }

            if (eventData.ObjSend != null)
            {
                string counterID    = eventData.ObjSend.counter_id;
                int    indexService = getIndexService(eventData.ObjSend.service_id, counterID);
                if (indexService != -1)
                {
                    string data    = eventData.ObjSend.cnum;
                    var    address = dicCounterKeyboard.FirstOrDefault(d => d.Value.CounterID == counterID).Key;
                    if (address > 0)
                    {
                        var byteRes = modBus.BuildText(ActionTicket.DEVICE_ID, address, command, data, indexService);
                        serialPort.SendData(byteRes);
                    }
                    else
                    {
                        //bug
                    }
                }
                else
                {
                    //truyền lỗi xuống port
                }
            }
            resByte = null;
        }