Beispiel #1
0
        public Task EnableRealtimeReportAsync(TimeSpan interval)
        {
            var writer = new ACSProtocolWriter();

            writer.Write(ACSProtocol.ACSP_REALTIMEPOS_INTERVAL);
            writer.Write((UInt16)interval.TotalMilliseconds);

            return(SendAsync(writer));
        }
Beispiel #2
0
        public Task GetSessionInfoAsync(Int16 sessionIndex = -1 /* current index */)
        {
            var writer = new ACSProtocolWriter();

            writer.Write(ACSProtocol.ACSP_GET_SESSION_INFO);
            writer.Write(sessionIndex);

            return(SendAsync(writer));
        }
Beispiel #3
0
        public Task GetCarInfoAsync(byte carId)
        {
            var writer = new ACSProtocolWriter();

            writer.Write(ACSProtocol.ACSP_GET_CAR_INFO);
            writer.Write(carId);

            return(SendAsync(writer));
        }
Beispiel #4
0
        public Task KickAsync(byte userId)
        {
            var writer = new ACSProtocolWriter();

            writer.Write(ACSProtocol.ACSP_KICK_USER);
            writer.Write(userId);

            return(SendAsync(writer));
        }
Beispiel #5
0
        // 여러 줄로 된 메시지는 줄 단위로 쪼개서 보낸다
        public async Task SendChatAsync(byte carId, string message)
        {
            var lines = SplitMessage(message, 62);

            foreach (var line in lines)
            {
                var writer = new ACSProtocolWriter();

                writer.Write(ACSProtocol.ACSP_SEND_CHAT);
                writer.Write(carId);
                writer.WriteStringW(line);

                await SendAsync(writer);
            }
        }
Beispiel #6
0
        public Task SendAdminMessageAsync(string message)
        {
            var writer = new ACSProtocolWriter();

            writer.Write(ACSProtocol.ACSP_ADMIN_COMMAND);
            writer.WriteStringW(message);

            return(SendAsync(writer));
        }
Beispiel #7
0
        public async Task BroadcastChatAsync(string message)
        {
            var lines = SplitMessage(message, 62);

            foreach (var line in lines)
            {
                var writer = new ACSProtocolWriter();

                writer.Write(ACSProtocol.ACSP_BROADCAST_CHAT);
                writer.WriteStringW(line);

                await SendAsync(writer);
            }
        }
Beispiel #8
0
        public Task SetSessionInfoAsync(byte sessionIndex, string sessionName, byte type, uint laps, TimeSpan time, TimeSpan waitTime)
        {
            var writer = new ACSProtocolWriter();

            writer.Write(ACSProtocol.ACSP_SET_SESSION_INFO);
            writer.Write(sessionIndex);
            writer.WriteStringW(sessionName);
            writer.Write(type);
            writer.Write(laps);
            writer.Write((uint)time.TotalSeconds);
            writer.Write((uint)waitTime.TotalSeconds);

            return(SendAsync(writer));
        }