Прошу помощь у знатаков

Тема в разделе "Arduino & Shields", создана пользователем ve3yn4ik, 13 июн 2014.

  1. ve3yn4ik

    ve3yn4ik Нуб

    Добрий день! всем , я новичок в ардуино и сейчас плотно изучаю ее, но у меня возникла проблема
    нужно создать контролер на основе ардуино в короткие строки а я физически не успеваю.
    Надеюсь на вашу помощь.
    в чем собственно задача : есть программа которая последовательно отправляет в оприделенное время строку данних:
    Код (Text):
    <BytesSample sampleTime="00:00:00.000" data="F88F02000000000002" />
        <BytesSample sampleTime="00:00:00.200" data="F88F020A0A0A000020" />
        <BytesSample sampleTime="00:00:00.400" data="F88F020A0A0A000020" />
        <BytesSample sampleTime="00:00:00.600" data="F88F020A0A0A000020" />
        <BytesSample sampleTime="00:00:00.800" data="F88F020A0A0A000020" />
        <BytesSample sampleTime="00:00:01.000" data="F88F020A0A0A010021" />
        <BytesSample sampleTime="00:00:01.200" data="F88F020A0A0A010021" />
        <BytesSample sampleTime="00:00:01.400" data="F88F020A0A0A010021" />
        <BytesSample sampleTime="00:00:01.600" data="F88F020A0A0A010021" />
        <BytesSample sampleTime="00:00:01.800" data="F88F020A0A0A010021" />
        <BytesSample sampleTime="00:00:02.000" data="F88F020A0A0A010021" />
        <BytesSample sampleTime="00:00:02.200" data="F88F020A0A0A010021" />
        <BytesSample sampleTime="00:00:02.400" data="F88F020A0A0A010021" />
        <BytesSample sampleTime="00:00:02.600" data="F88F020A0A0A010021" />
        <BytesSample sampleTime="00:00:02.800" data="F88F020A0A0A010021" />
        <BytesSample sampleTime="00:00:03.000" data="F88F020A0A0A010021" />
        <BytesSample sampleTime="00:00:03.200" data="F88F02320A32010071" />
        <BytesSample sampleTime="00:00:03.400" data="F88F02320A32010071" />
        <BytesSample sampleTime="00:00:03.600" data="F88F02320A32010071" />
        <BytesSample sampleTime="00:00:03.800" data="F88F02320A32030073" />
        <BytesSample sampleTime="00:00:04.000" data="F88F02320A32030073" />
        <BytesSample sampleTime="00:00:04.200" data="F88F02320A32010071" />
        <BytesSample sampleTime="00:00:04.400" data="F88F02320A32010071" />
        <BytesSample sampleTime="00:00:04.600" data="F88F02320A32010071" />
        <BytesSample sampleTime="00:00:04.800" data="F88F02640A320100A3" />
    F88F020A0A0A000020

    F88F02- являеться стартом строки на скок я понимаю
    дальше дание нужно розбить по 2 : 0A,0A,0A,00,00,20 каждому значению нада назначить переменну по которим я дальше буду управлять устройством.
    позже виложу свой вариант кода.

    Буду благодарен за любую помощь!
     
  2. Megakoteyka

    Megakoteyka Оракул Модератор

    Попробуйте примерно так:
    Код (Text):
    char str[] = "<BytesSample sampleTime="00:00:00.200" data="F88F020A0A0A000020" />";
    char strPart[3];
    int values[6];
    ...
    for(int valueIndex = 0; valueIndex < 6, valueIndex++)
    {
      strParts[0] = str[51 + valueIndex * 2];
      strParts[1] = str[52 + valueIndex * 2];
      strParts[2] = '\0';

      values[valueIndex] = (int)strtol(&strParts[0], NULL, 16);
    }
     
  3. ve3yn4ik

    ve3yn4ik Нуб

    Прошу прощение немного не правильно написал, в порт проходит только :
    Код (Text):
        F88F020A0A0A000020
        F88F020A0A0A000020
        F88F020A0A0A000020
        F88F020A0A0A000020
        F88F020A0A0A010021
        F88F020A0A0A010021
        F88F020A0A0A010021
        F88F020A0A0A010021
        F88F020A0A0A010021
        F88F020A0A0A010021
        F88F020A0A0A010021
        F88F020A0A0A010021
    кажди 200 мс
     
  4. Megakoteyka

    Megakoteyka Оракул Модератор

    Ну тогда 6 и 7 вместо 51 и 52, что тут сложного?
    Либо сразу отправляйте в порт байты вместо текста и синхронизируйтесь по маркеру F88F02, это еще проще.