Страница 1 из 2

Блок пользователя CAN-Hacker

Добавлено: 01 апр 2020, 20:16
eraser19rus
Здравствуйте. Помогите а то нимагу как говорится. Решил я тут сделать пользовательский блок CAN-Hacker который позволяет использовать связку ардуино + MCP2515 в качестве интерфейса для программы CANHACKER. Скачал IDE новую и скопировал туда скетч. Скомпилировал и залил в ардуину. Проверил в связке с программой кан хакер все связывается и работает. В том числе принимает и передает данные. Беру этот же скетч и переношу в блок пользователя. Компилирую, открывается в ide, нажимаю компилировать уже там и посыпались ошибки. Причем ошибки по не объявленным переменным, и по библиотекам. Все библиотеки прописал и установил и объявил. Все равно не работает. Причем скетч который генерирует флпрог, полностью совпадает с исходником, за исключением уникальных идентификаторов. Неделю бился, так и не дал ладу. Еще хочу сказать что я взял сгенерированный скетч и вставил его в ide на котором все запускалось, и он тоже не пошел с теми же ошибками. Может тут кто хорошо делает блоки пользователей попробовать сделать блок из скетча? Если такой человек найдется я дам скетч для опытов. Помогите пожалуйста.

Блок пользователя CAN-Hacker

Добавлено: 01 апр 2020, 20:23
Ingwar
eraser19rus писал(а): 01 апр 2020, 20:16 Если такой человек найдется я дам скетч для опытов.
Если ищите помощи приватно, то Вам в раздел "Прием заказов". Если нет, то экстрасенсы на самоизоляции (тренд).

Блок пользователя CAN-Hacker

Добавлено: 01 апр 2020, 20:45
uglerod
Выложите что есть. Посмотрим.

Блок пользователя CAN-Hacker

Добавлено: 01 апр 2020, 21:36
aidar_i
eraser19rus писал(а): 01 апр 2020, 20:16 за исключением уникальных идентификаторов.
Собака здесь зарыта!
Попробуйте поставить галочку Разрешено использовать в проекте один раз.

Блок пользователя CAN-Hacker

Добавлено: 01 апр 2020, 21:49
uglerod
Ну вот и чудненько! Ну а на блок,что получилось, можно взглянуть?

Блок пользователя CAN-Hacker

Добавлено: 02 апр 2020, 06:01
eraser19rus
спасибо за готовность помочь, пока все блоки что не получались удалил, сегодня позже выложу сюда то что получилось.

Блок пользователя CAN-Hacker

Добавлено: 02 апр 2020, 08:42
benic
Скетч или ссылка не помешает.

Блок пользователя CAN-Hacker

Добавлено: 02 апр 2020, 10:25
eraser19rus
вот рабочий скетч и в приложении библиотеки с которыми он работает

Код: Выделить всё

#include <can.h>
#include <mcp2515.h>

#include <CanHacker.h>
#include <CanHackerLineReader.h>
#include <lib.h>

#include <SPI.h>
#include <SoftwareSerial.h>

const int SPI_CS_PIN = 10;
const int INT_PIN = 2;

const int SS_RX_PIN = 3;
const int SS_TX_PIN = 4;

CanHackerLineReader *lineReader = NULL;
CanHacker *canHacker = NULL;

SoftwareSerial softwareSerial(SS_RX_PIN, SS_TX_PIN);

void setup() {
    Serial.begin(115200);
    while (!Serial);
    SPI.begin();
    softwareSerial.begin(115200);

    Stream *interfaceStream = &Serial;
    Stream *debugStream = &softwareSerial;
    
    
    canHacker = new CanHacker(interfaceStream, debugStream, SPI_CS_PIN);
    //canHacker->enableLoopback(); // uncomment this for loopback
    lineReader = new CanHackerLineReader(canHacker);

    pinMode(INT_PIN, INPUT);
}

void loop() {
    CanHacker::ERROR error;
  
    if (digitalRead(INT_PIN) == LOW) {
        error = canHacker->processInterrupt();
        handleError(error);
    }

    error = lineReader->process();
    handleError(error);
}

void handleError(const CanHacker::ERROR error) {

    switch (error) {
        case CanHacker::ERROR_OK:
        case CanHacker::ERROR_UNKNOWN_COMMAND:
        case CanHacker::ERROR_NOT_CONNECTED:
        case CanHacker::ERROR_MCP2515_ERRIF:
        case CanHacker::ERROR_INVALID_COMMAND:
            return;

        default:
            break;
    }
  
    softwareSerial.print("Failure (code ");
    softwareSerial.print((int)error);
    softwareSerial.println(")");

    digitalWrite(SPI_CS_PIN, HIGH);
    pinMode(LED_BUILTIN, OUTPUT);
  
    while (1) {
        int c = (int)error;
        for (int i=0; i<c; i++) {
            digitalWrite(LED_BUILTIN, HIGH);
            delay(500);
            digitalWrite(LED_BUILTIN, LOW);
            delay(500);
        }
        
        delay(2000);
    } ;
}
Отправлено спустя 6 минут 24 секунды:
в IDE flprog есть своя библиотека mcp2515 причем она модифицированная походу Глушенко. Возможно кстати из-за этого тоже косяки вылазят. Не знаю стоит ли опять делать то же самое что я делал и выкладывать здесь. Просто уверен что вам это мало что даст, просто увидите что не работает сгенерированный скетч

Блок пользователя CAN-Hacker

Добавлено: 02 апр 2020, 15:55
benic
В библах надо шерудить. Осмелюсь спросить а блок зачем если работает устройство?
Вот описывает человек по сути:
https://habr.com/ru/post/256493/

Блок пользователя CAN-Hacker

Добавлено: 02 апр 2020, 16:28
eraser19rus
benic писал(а): 02 апр 2020, 15:55 В библах надо шерудить. Осмелюсь спросить а блок зачем если работает устройство?
На такой вопрос зачем ответить сложно. Но попробую объяснить. Вот смотрите: наш уважаемый автор программы сделал блоки для работы с mcp2515 и теперь все могут применять их в своих проектах, хорошо? Конечно хорошо. Но для того чтобы проанализировать что происходит в шине нужен инструмент типа канхакера. Но чтобы получить этот инструмент нужно реально заморочится. Отыскать скетч, библиотеки, причем библиотеку надо еще и поправить, так как по умолчанию она работает с модулем на 16 мгц. А ведь пока я искал в библиотеках что поправить, смотрел инет и там люди не найдя что поправить тупо перепаивали кварц на 16 мгц, хотя надо было просто поменять одно число на другое в библиотеке. И вот сделав это все, вы наконец получаете результат. А теперь представьте, что у вас в флпрог рядом с блоками читать и писать в шину кан, лежит готовый блок, разместив который и в настройках выбрав кварц который у вас в модуле и пару пинов CS и INT, и залив это в ардуину вы получаете готовый интерфейс для работы с программой кан хакер. И после того как вы проанализировав шину и найдя и протестировав там нужные вам данные и ид, вы не выходя из флпрога просто жмакнув в соседнее окно, правите ваш скетч и заливаете в ардуину. Удобно? Хорошо? Нет так нам не надо. Это мы будем делать в флпроге, а вот это в другой программе, потому что уже готовое же есть, зачем напрягаться. Так если рассуждать, так зачем тогда вообще флпрог вам сдался? Пишите все на си, все же есть уже готовое.

Отправлено спустя 6 минут 39 секунд:
в библиотеках надо шерудить это факт. Ведь Глушенко перешерудил библиотеки mcp2515 и теперь можно не морочиться какой кварц стоит на модуле, а выбрать в настройках блока. Это очень удобно. Только вот не программист я, и мне не хватает знаний как их перешурудить чтобы создать свой блок, поправить что в библиотках. Поэтому я и написал сюда. Не себе мне этот блок надо, у меня есть канхакер и заводской и из аврдуины. Но за проект ратую. Чтобы людям удобно было пользоваться флпрогом.

Отправлено спустя 3 минуты 59 секунд:
Я думаю тут есть люди, для которых это задача не сложная. Просто не было интереса чтоли, или надобности. Но если есть человек который сможет создать такой блок и в последствии автор программы занесет его в дерево блоков стандартных, было бы очень не плохо. Извините если резковато тут написал. Просто не нравятся мне такие вопросы по типу нафига делать тут, если есть там. Чтобы было.... :)

Блок пользователя CAN-Hacker

Добавлено: 03 апр 2020, 08:35
benic
eraser19rus писал(а): 01 апр 2020, 20:16 Скачал IDE новую и скопировал туда скетч.
Попробуй все с начала работая с IDE расположенной в папке FLProg, не запуская FLprog.
Не те библы там в папке FLprog.

Блок пользователя CAN-Hacker

Добавлено: 03 апр 2020, 10:06
aidar_i
Испытайте
canhacker.flp
Если нормально, оформите и создайте тему в ПБ.

Попробуйте блок с установкой частоты в параметрах
canhacker1.flp
Частота в библиотеке задается здесь
[spoiler]
Безымянный.png
[/spoiler]

Свои блоки, которые не работают, все равно нужно выкладывать! Так можно быстрее Вам помочь!Проще мне подправить, чем сидеть и создавать блок, тратить лишнее время. Ладно сейчас его многовато.

Блок пользователя CAN-Hacker

Добавлено: 03 апр 2020, 12:03
eraser19rus
aidar_i писал(а): 03 апр 2020, 10:06 Испытайте
canhacker.flp
(36.41 КБ) 1 скачивание
Если нормально, оформите и создайте тему в ПБ.
Спасибо большое! Человек с большой буквы! Я как доберусь до работы (модуль mcp2515 у меня на работе лежит) Протестирую в железе и отпишусь. Спасибо еще раз за помощь.

Блок пользователя CAN-Hacker

Добавлено: 03 апр 2020, 22:05
aidar_i
По просьбе eraser19rus выкладываю видео

Блок пользователя CAN-Hacker

Добавлено: 04 апр 2020, 14:32
eraser19rus
aidar_i писал(а): 03 апр 2020, 22:05 По просьбе eraser19rus выкладываю видео 1 и видео2
Всем кто не понимает как делать блоки самому, очень советую посмотреть эти видео. Реально понял как делать блок. Респект Айдару. Тем более он обещал еще звук приклеить.

Блок пользователя CAN-Hacker

Добавлено: 04 апр 2020, 20:28
aidar_i
eraser19rus писал(а): 04 апр 2020, 14:32 Тем более он обещал еще звук приклеить.
Склеил см. выше.

Блок пользователя CAN-Hacker

Добавлено: 07 апр 2020, 07:38
eraser19rus
Привет всем. Мы совместно с aidar_i доработали и проверили блок канхакер в железе. Все прекрасно работает. Как подключать и настраивать модуль mcp2515 написано в описании блока.

Блок пользователя CAN-Hacker

Добавлено: 07 апр 2020, 20:55
eraser19rus
ссылка на тему в блоки пользователей viewtopic.php?f=71&t=6337

Блок пользователя CAN-Hacker

Добавлено: 06 дек 2020, 09:37
0911cd
Здравствуйте. Не могли бы помочь создать пользовательский блок?

Блок пользователя CAN-Hacker

Добавлено: 06 дек 2020, 09:57
Dryundel
0911cd писал(а): 06 дек 2020, 09:37 Здравствуйте. Не могли бы помочь создать пользовательский блок?
Да, конечно, безусловно!
Вам ведь нужен блок CANHacker? Их есть у меня.
Но вероятно Вам требуется сканировать CAN-шину приобретенного по дешевке, списанного космического аппарата "Буран-М".
Уже начал работать.
Куда прислать ПБ?