Для студенческого проекта я пытаюсь создать интерфейс между Project Cars 2, который имеет адрес общей памяти, где вы можете собирать данные автомобильной телеметрии, и встроенной системой, взаимодействующей через UART.
Я бы хотел построить его на Go и в долгосрочной перспективе создать пакет для Go, который сможет связывать и собирать данные телеметрии и использовать их в будущем.Структура и данные разделяемой памяти записаны на C и находятся здесь (источник этого файла) .Когда вы обращаетесь к отображенному в памяти файлу "% pcars2%", этот адрес содержит данные об организации связанной структуры.
Мой вопрос: как наилучшим образом извлечь данные из этой структуры?Я понимаю, что могу использовать cgo и интерпретировать данные структуры, но есть ли способ сделать копию памяти, как в C, непосредственно в Go, используя структуру, созданную из подобных типов из этого адреса?Я понимаю, что могу использовать UDP API для данных телеметрии, но мне любопытно, есть ли у Go такая функциональность.