コード例 #1
0
        /*
         *  PER ARDAC ELITE
         *
         *  N.B.: Da verificare cosa effettivamente arriva
         *
         *      Header 159 – Read buffered bill events
         *      Transmitted data : <none>
         *      Received data : [ event counter ]
         *                                      [ result 1A ] [ result 1B ]
         *                                      [ result 2A ] [ result 2B ]
         *                                      [ result 3A ] [ result 3B ]
         *                                      [ result 4A ] [ result 4B ]
         *                                      [ result 5A ] [ result 5B ]
         *      See the Event Code Table for a list of possible event codes.
         *      Note that the event counter wraps from 255 to 1. An event counter of zero indicates power-up or
         *      reset.
         */

        public new DeviceEventBuffer CmdReadEventBuffer()
        {
            var msg     = CreateMessage(159);
            var respond = Connection.Send(msg, _checksumHandler);

            if (respond.DataLength < 11)
            {
                throw new InvalidRespondException(respond);
            }

            var data   = respond.Data;
            var events = new[]
            {
                new DeviceEvent(data[1], data[2]),
                new DeviceEvent(data[3], data[4]),
                new DeviceEvent(data[5], data[6]),
                new DeviceEvent(data[7], data[8]),
                new DeviceEvent(data[9], data[10])
            }
            ;


            var ret = new DeviceEventBuffer
            {
                Counter = respond.Data[0],
                Events  = events
            };

            return(ret);
        }
コード例 #2
0
        public DeviceEventBuffer ReadBufferedBillEvents()
        {
            var res = ExecCommand((byte)ccTalkCommand.ReadBufferedBillEvents);

            if (res.DataLen < 11)
            {
                throw new Exception("incomplete message while reading events");
            }
            var res2 = new DeviceEventBuffer();

            res2.Counter = res.Data[0];
            var deviceEvents = new List <DeviceEvent>();

            for (var i = 0; i < 5; i++)
            {
                deviceEvents.Add(new DeviceEvent(res.Data[i * 2 + 1], res.Data[i * 2 + 2]));
            }
            res2.Events = deviceEvents.ToArray();
            return(res2);
        }