コード例 #1
0
        private static void RunLoop()
        {
            AssettoCorsa ac = new AssettoCorsa();

            ac.StaticInfoInterval = 1000;              // Get StaticInfo updates ever 5 seconds
            ac.StaticInfoUpdated += StaticInfoUpdated; // Add event listener for StaticInfo
            ac.PhysicsInterval    = 100;
            ac.PhysicsUpdated    += PhysicsUpdated;
            ac.GraphicsInterval   = 300;
            ac.GraphicsUpdated   += GraphicsUpdated;
            ac.GameStatusChanged += GameStatusChanged;
            ac.Start(); // Connect to shared memory and start interval timers

            Console.WriteLine("Press Q to quit!");
            Console.WriteLine("Serial buffer stats:");

            while (true)
            {
                if (Console.KeyAvailable)
                {
                    var key = Console.ReadKey(true);
                    if (key.Key == ConsoleKey.Q)
                    {
                        break;
                    }
                }
                Thread.Sleep(100);

                // buffer stats
                Console.Write("{0,5} / {1,5}\r", _port.BytesToWrite, _port.WriteBufferSize);
            }
            ac.Stop();
            Console.WriteLine();
        }
コード例 #2
0
 private void Init()
 {
     iTicks          = 0;
     bSendingAllowed = true;
     Console.WriteLine("Initialize Assetto Corsa Competizione shared memory component");
     pAc = new AssettoCorsa();
     pAc.StaticInfoUpdated += PAc_StaticInfoUpdated;
     pAc.PhysicsUpdated    += PAc_PhysicsUpdated;
     pAc.GraphicsUpdated   += PAc_GraphicsUpdated;
 }
コード例 #3
0
ファイル: ACServerService.cs プロジェクト: coffeelake/DBSim
        public AcServerService()
        {
            var ac = new AssettoCorsa {
                StaticInfoInterval = 1000, GraphicsInterval = 10, PhysicsInterval = 10
            };

            ac.StaticInfoUpdated += this.AC_StaticInfoUpdated; // Add event listener for StaticInfo
            ac.GraphicsUpdated   += this.AC_GraphicInfoUpdated;
            ac.PhysicsUpdated    += this.AC_PhysicsUpdated;
            ac.GameStatusChanged += this.AC_GameStatusChanged;
            ac.Start(); // Connect to shared memory and start interval timers
        }
コード例 #4
0
        static void Main(string[] args)
        {
            //insancia a api do assetto corsa
            AssettoCorsa ac = new AssettoCorsa();

            //seta o intervalo de tempo do evento
            ac.PhysicsInterval  = 1000;
            ac.GraphicsInterval = 1000;
            //chama os eventos
            ac.GraphicsUpdated += ac_GrapichUpdated;
            ac.PhysicsUpdated  += ac_PhysicsUpdated;
            ac.Start();
            Console.ReadKey();
        }
コード例 #5
0
        static void Main(string[] args)
        {
            serialConnection = new SerialConnection(115200, 64);
            serialConnection.Connect(SerialConnection.GetArdunioPort());
            acClient = new ACClient(serialConnection);

            assetoCorsa = new AssettoCorsa();
            assetoCorsa.GraphicsInterval   = 10;
            assetoCorsa.StaticInfoUpdated += acClient.StaticInfoUpdated;
            assetoCorsa.PhysicsUpdated    += acClient.PhysicsUpdated;
            assetoCorsa.GraphicsUpdated   += acClient.GraphicsUpdated;
            assetoCorsa.Start();

            Console.ReadKey();
        }
コード例 #6
0
ファイル: Form1.cs プロジェクト: strozx/Assetto-Corsa-Manager
        public Form1()
        {
            InitializeComponent();
            LoadPorts();
            AssettoCorsa ac = new AssettoCorsa();

            ac.PhysicsInterval = 10;
            ac.PhysicsUpdated += ac_StaticInfoUpdated;

            ac.StaticInfoInterval = 5000;                 // Get StaticInfo updates ever 5 seconds
            ac.StaticInfoUpdated += ac_StaticInfoUpdated; // Add event listener for StaticInfo
            ac.Start();

            timer1.Enabled = true;
        }
コード例 #7
0
ファイル: ACInterface.cs プロジェクト: kamilj/SimCycling
        private void Start()
        {
            Log("Init Ac");
            ac = new AssettoCorsa
            {
                PhysicsInterval    = 100,
                GraphicsInterval   = 500,
                StaticInfoInterval = 1000
            };

            ac.PhysicsUpdated    += OnACPhysics;
            ac.GraphicsUpdated   += OnACGraphics;
            ac.StaticInfoUpdated += OnACInfo;

            ac.Start();
            isSpeedInit = false;
            Log("AC Is running : " + ac.IsRunning);
        }
コード例 #8
0
        static void Main(string[] args)
        {
            Console.WriteLine("--- Assetto Corsa Telemtry Router ---\n");
            Console.WriteLine("Compatible with AC and ACC.\nExit with Ctrl+C.\n\n");

            string[] ports = SerialPort.GetPortNames();
            Console.WriteLine("The following serial ports were found:");
            int ii = 0;

            foreach (string port in ports)
            {
                Console.Write(ii);
                Console.Write(": ");
                Console.WriteLine(port);
                ii++;
            }

            int port_number = -1;

            Console.Write("Choose port by leading number: ");
            while (port_number < 0)
            {
                ConsoleKeyInfo input = Console.ReadKey();
                Console.WriteLine();
                if (char.IsDigit(input.KeyChar))
                {
                    port_number = int.Parse(input.KeyChar.ToString());
                }
                if (port_number < 0 || port_number > ports.Length - 1)
                {
                    Console.Write("Invalid, enter again: ");
                    port_number = -1;
                }
            }

            _port = new SerialPort(ports[port_number], 115200);

            Console.WriteLine("\n\nWaiting for Arduino to connect...");
            _port.Open();
            while (!_port.IsOpen)
            {
                Thread.Sleep(10);
            }
            Console.WriteLine("Connected to Arduino.");

            AssettoCorsa ac = new AssettoCorsa();

            ac.StaticInfoInterval = 5000;
            ac.PhysicsInterval    = 10;
            ac.StaticInfoUpdated += ac_StaticInfoUpdated;
            ac.PhysicsUpdated    += ac_PhysicUpdated;
            ac.Start();

            Console.WriteLine("\nWaiting for game to connect...");
            while (!ac.IsRunning)
            {
                Thread.Sleep(500);
            }
            Console.WriteLine("Connected to game.\n");


            Console.Write("Ready to go. Sending data every ");
            Console.Write(ac.PhysicsInterval);
            Console.WriteLine("ms.");
            Console.ReadKey();
        }
コード例 #9
0
        protected override void start()
        {
            ac = new AssettoCorsa();

            ac.GraphicsInterval   = 10;
            ac.PhysicsInterval    = 10;
            ac.StaticInfoInterval = 5000;

            ac.StaticInfoUpdated += StaticInfoUpdated;
            ac.GraphicsUpdated   += GraphicsUpdated;
            ac.PhysicsUpdated    += PhysicsUpdated;
            ac.Start();

            NotifyStatusMessage("Waiting for Assetto Corsa...");

            bool isConnected = false;

            while (!CancellationPending)
            {
                if (gr.Status != AC_STATUS.AC_OFF)
                {
                    if (!isConnected)
                    {
                        string s = "Connected to Assetto Corsa.";
                        logger.LogMessageToFile(s, true);
                        NotifyStatusMessage(s);
                    }

                    isConnected = true;

                    sendRPMShiftMsg(currentRpm, firstRpm, lastRpm, flag);

                    foreach (SerialManager serialManager in sm)
                    {
                        if (serialManager.deviceContains7Segments())
                        {
                            send7SegmentMsg();
                        }
                    }
                }
                else
                {
                    if (isConnected)
                    {
                        string s = "Assetto Corsa closed.";
                        logger.LogMessageToFile(s, true);
                        NotifyStatusMessage(s);
                    }

                    isConnected = false;

                    foreach (SerialManager serialManager in sm)
                    {
                        if (serialManager.deviceContains7Segments())
                        {
                            serialManager.enqueueCommand(Utils.getDisconnectedMsgCmd(), false);
                            serialManager.enqueueCommand(Utils.getBlackRPMCmd(), false);
                        }
                    }
                }

                Thread.Sleep(Constants.SharedMemoryReadRate);
            }

            NotifyStatusMessage("Assetto Corsa thread stopped.");
        }