Мнения, выраженные в этом документе и кодексе, являются мнениями автора и не отражают официальную политику или должность ВВС США, армии Соединенных Штатов, Министерства обороны США или правительства Соединенных Штатов. Этот материал объявляется работой правительства США и не подлежит защите авторских прав в Соединенных Штатах. Одобрение публичного раскрытия этого кодекса было одобрено 88-м крылом авиабазой 08 марта 2019 года в соответствии с делом № 88ABW-2019-0910. Неклассифицированное раскрытие диссертации было одобрено 3 января 2019 года по делу № 88ABW-2019-0024.
В этом проекте расположены сценарии Python и R, предназначенные для облегчения автоматической обработки полезных нагрузок (CAN), наблюдаемых из пассажирских транспортных средств. Этот кодекс был первоначально разработан доктором Брентом Стоуном в Технологическом институте ВВС для получения доктора философии в области компьютерных наук. Пожалуйста, смотрите включенную диссертацию под названием «Включение аудита и обнаружения вторжений для сетей областей контроллера» для получения подробной информации об используемых методах. Пожалуйста, откройте проблему, сообщая мне, если вы найдете какие -либо опечатки, плохую грамматику, ваши авторские права, которые вы хотите удалить, или другие проблемы!
Особая благодарность Дейву Бланделлу, соавтору справочника автомобильного хакера, и сообществу «Открытые гаражи за технические советы» и служение в качестве совета по звучанию.
Эти сценарии не будут работать сразу при клонировании этого репо. Надеюсь, эти советы сэкономит вам время и разочарование, говоря: «Почему эти вещи не сработают!?!?!» Пожалуйста, задавайте вопросы, опубликовав в открытых гаражах Google Group. Эти сценарии были разработаны и протестированы с использованием Python 3.6. Пожалуйста, убедитесь, что у вас есть пакеты Numpy, Pandas и Scikit-Learn, доступные для вашего интерпретатора Python.
Файлы организованы с примером примера данных и тремя папками. Каждая папка представляет собой автономный набор взаимозависимых классов Python или R сценариев для изучения данных CAN в формате, показанном в примере LoggerProgram0.log. Различные форматы файлов могут быть использованы путем настройки preprocessor.py соответственно.
Папка 1: трубопровод
Папка 2: Pipeline_multi-file
Это самая полная и надежная реализация концепций, представленных в диссертации; Тем не менее, код также более сложный для обеспечения автоматической обработки многих образцов данных может одновременно. Если вам еще не очень удобно с Python и Pandas, убедитесь, что вы понимаете, как работают сценарии в папке трубопровода, прежде чем пытаться пройти эту расширенную версию кода.
Эта папка включает в себя те же классы из трубопровода . Однако некоторые ошибки были исправлены здесь, но не в классах, сохраненных в трубопроводе . Если щедрая душа хочет пересадить исправления обратно в трубопровод , я с радостью объединяю вилку.
Убедитесь, что вы прочитали комментарии о ожидаемой структуре папок!
Папка 3: сценарии R
R -сценарии требуют пакета REDM. Ищите commands_list.txt для последовательной серии команд R. Для получения дополнительной информации о EDM см. В лаборатории Sugihara UC Sugihara UC Sugihara: https://deepeco.ucsd.edu/.
Папки «Город» и «Дома» включают в себя файлы .csv of Engine RPM, тормозное давление и временные ряды скорости автомобиля в различных условиях вождения. Каждая папка включает в себя файл «commands_list _ ####.
.RDA Файлы и .pdf Графический вывод являются примерами вывода с использованием команд R и предоставленных данных .csv.
[Апрель 2020 г. Обновление] будет добавить поддержку аргументов командной строки и предварительной обработки формата логаризма Can-Outils. Использование есть:
Пример Использование с форматом логарифмического формата Can -UTILS
python main.py-can-utils inputfile.log
Пример Использование с исходным форматом python main.py riginalformat.log
Пример Использовать с ./loggerprogram0.log python main.py
Ввод : может ли данные в формате, продемонстрированные в loggerprogram.log
Вывод : эта серия сценариев создает массив вывода в зависимости от глобальных переменных, определенных в main.py. Этот вывод может включать следующее:
Ввод : может ли данные в формате, продемонстрированные в loggerprogram.log.
Ввод : файлы с простым текстом .csv, содержащие данные временных рядов, такие как данные, включенные в эту папку.
Выход :