непонятно что в com порте

Тема в разделе "Микроконтроллеры AVR", создана пользователем rewan871, 19 окт 2017.

  1. rewan871

    rewan871 Нерд

    Здравствуйте!
    Читаю данные с COM порта (rs232), выводит непонятные символы. Подключил как написано в инструкции, 115200 бод, 8 бит. Перепробовал уже все варианты(


    Выводит такие данные:
    Код (Text):
    ...8...(.
    .H.•.'...5.P.".....g.....<.З.+.E.;.@...F...µ...M...`...T.#.Ђ...U.W.....V...3...............Н—¦?ҐГ@їRВЊC......lBN}
    ?..рAа)Ї=.Ђ.:Ў.БBЎN..bbђ<ђшџBк..¦®С............ЛH.>}g^>ћ1.AЅтОъ.л..X.‰л@.»‡D.]сD.мM..m
    ?.ЎУ<.мM...%g.ЎJ@.њ.=.мM..N0..Јђ>.kБ>.z°>.мM.......................ЂюF..lBpw
    ?..рAЇJЇ=яk“=Н.ЋC)к.......ЂюF..lBpw
    ?..рAЇJЇ=....љ™Щ?[.....E.F.U...................33S@љ™Щ?333@
    .....................................................................................................y‹¦?ЎО@їRВЊC......lBN}
    ?..рAа)Ї=.Ђ.-¶яАBЎN..т.’<ечџB®к..щ.С............ЫЛ.>ћ.d>ј..AT.Оъ.л..X.‘н@.”‰D.±уD.жM..Ѕ
    ?.ЌУ<.жM..п$g.ђN@.‘.=.жM..N0..¤ђ>.kБ>.x°>.жM.......................ЂюF..lBpw
    ?..рAЇJЇ=яk“=Н.ЋC)к.......ЂюF..lBpw
    ?..рAЇJЇ=....љ™Щ?[.....
    .......................33S@љ™Щ?333@
    ...8...(.
    .H.•.'...5.P.".....g.....<.З.+.E.;.@...F...µ...M...`...T.#.Ђ...U.W.....V...3...............Ў—¦?яУ@їRВЊC......lBN}
    ?..рAа)Ї=..ђ7@.БBЎN..ЫЛ™<¦. BЇк..¦С............е;.>‹Xd>¬T.AnЫОъ.л..X.iо@.O†D.9сD.ЫM..Б.?.rФ<.ЫM..у$g.>P@.п.=.ЫM..N0..џђ>.kБ>.|°>.ЫM.......................‚юF..lBЬx
    ?..рA59Ї=ЫЉЅ=Н.ЋC)к.......‚юF..lBЬx
    ?..рA59Ї=....љ™Щ?V.....E.F.U...................33S@љ™Щ?333@
    ......................................................................................................™¦?iЪ@їRВЊC......lBN}
    ?..рAа)Ї=..49§рАBЎN..†[џ<M. B°к..ҐпС............ы‰.>$jb>ќ..Aн.Оъ.л..X.Но@..ЉD.7уD..N..±
    ?.№Т<..N..ъ$g.-S@.y.=..N..N0..ўђ>.jБ>.x°>..N.......................‚юF..lBЬx
    ?..рA59Ї=ЫЉЅ=Н.ЋC)к.......‚юF..lBЬx
    ?..рA59Ї=....љ™Щ?V.....
    .......................33S@љ™Щ?333@
    ...8...(.
    .H.•.&...5.P.".....g.....<.З.*.E.;.@...F...µ...M...`...T.#.Ђ.
    .U.W.....V...3...............т”¦?XР@їRВЊC......lBN}
    ?..рAа)Ї=..а9pЫАBЎN...
     
     
  2. ostrov

    ostrov Гуру

    Перепробовали все скорости?
     
  3. Tomasina

    Tomasina Сушитель лампочек Модератор

    Поставь скорость 57600 или 19200.
    Китайские RS-232 не вытягивают 115200, поэтому их и продают за такую цену.
     
    DIYMan нравится это.
  4. rkit

    rkit Гуру

    А что там должно быть? Вы уверены, что это текстовый протокол?
     
  5. DIYMan

    DIYMan Guest

    Блин, реально? Моя любимая скорость, жаль.
     
  6. Tomasina

    Tomasina Сушитель лампочек Модератор

    модули RS-485 с Али точно не тянут. Начинают бодро, потом мусор сыпется.
     
    DIYMan нравится это.
  7. rewan871

    rewan871 Нерд

    Перепробовал все скорости. Устройство как ниже по ссылке, у него интерфейс rs232. Там же по ссылке техническое описание устройства.
    http://www.teknol.ru/products/land/companav2mt
     
  8. Tomasina

    Tomasina Сушитель лампочек Модератор

    На странице 9 приведённого технического описания прямым текстом написано, что это не текстовый, а бинарный протокол, и приведены все параметры связи, и даже структура данных и примеры кода.
    Что вы ожидали прочесть без расшифровки?
     
    Последнее редактирование: 22 окт 2017
  9. rewan871

    rewan871 Нерд

    Подскажите пожалуйста, как перевести эти данные в человекочитабельный вид.
    Считал данные в через программу Serial Port Monitor ниже по ссылке
    https://drive.google.com/file/d/0ByS0gcCCxdoCY01BUlFMTHpHMUU/view
     
    Последнее редактирование: 22 окт 2017
  10. rkit

    rkit Гуру

    Сесть, прочитать описание, да написать соответствующую программу.
     
  11. rewan871

    rewan871 Нерд

    Посоветуйте пожалуйста литературу или примеры.
    Буду очень благодарен!
     
    Последнее редактирование: 23 окт 2017
  12. rewan871

    rewan871 Нерд

    Начинаю немного разбираться, поправьте, если не прав.

    Получается устройство передает в com порт байты в виде uint8, а из них уже нужно собирать значения. Там написаны типы данных int, long, float. Например если float, то собирать из четырех байт?
     
    Последнее редактирование: 23 окт 2017
  13. Tomasina

    Tomasina Сушитель лампочек Модератор

    Честно признаюсь - не знаю. То, что там написано - выше моих возможностей на данный момент.
     
  14. rewan871

    rewan871 Нерд

    блин и моих(
    но сделать надо, буду отписываться сюда о результатах.
     
  15. rkit

    rkit Гуру

    Любой учебник по С++ пойдет.
     
  16. akl

    akl Гуру

    судя по таблице, первые 16 бит это заголовок CE FA, следующие 32 это время работы в 1/10 секунд, и так далее вплоть до следующего заголовка (сначала D1 AD для дополнительного пакета, а котом снова CE FA новый пакет) в соответствии с количеством ячеек для каждого типа данных (ниже еще одна таблица где написано сколько бит на какой)

    Код (C++):

                                 ce fa 14 eb 01 00 58 02
        08 ed 40 00 c7 89 44 00 9c f3 44 00 c7 4d 0e 00
        b6 05 3f 00 45 d3 3c 00 c7 4d 0e 00 1d 25 67 00
        01 52 40 00 89 1e 3d 00 c7 4d 0e 00 4e 30 05 00
        a5 90 3e 00 6c c1 3e 00 7b b0 3e 00 c7 4d 0e 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 80 fe 46 00 00 6c 42 70 77 0a 3f
        00 00 f0 41 af 4a af 3d ff 6b 93 3d cd 0c 8e 43
        29 ea 02 00 00 00 00 00 00 80 fe 46 00 00 6c 42
        70 77 0a 3f 00 00 f0 41 af 4a af 3d 01 00 08 00
        9a 99 d9 3f 5b 00 12 00 03 00 0a 00 1b 00 08 00
        15 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 33 33 53 40 9a 99 d9 3f 33 33 33 40 0d 00
        08 00 38 00 16 01 28 00 0a 00 48 00 95 00 27 00
        12 00 35 00 50 00 22 00 15 00 17 00 67 00 1c 00
        1b 00 3c 00 c7 00 2b 00 45 00 3b 00 40 00 19 00
        46 00 2e 00 b5 00 1c 00 4d 00 15 00 60 01 00 00
        54 00 23 00 80 00 02 00 55 00 57 00 0f 01 1f 00
        56 00 1d 00 33 01 18 00 00 00 00 00 00 00 00 00
        01 00 06 01 f1 9c a6 3f e4 a2 40 bf 52 c2 8c 43
        00 00 00 00 00 00 6c 42 4e 7d 0a 3f 00 00 f0 41
        e0 29 af 3d fe ff cf 37 b1 0e c1 42 a1 4e 02 00
        86 d7 93 3c 24 eb 9f 42 ab ea 01 00 07 10 d1 ad
        00 00 00 00 00 00 00 00 00 00 00 00 fe af 06 3e
        89 73 64 3e d4 58 1c 41 0c 68
     
    в этом куске я смог найти и понять только дату 29 ea 02 00 (то есть 0002ea29
    что в переводе значит 191017 (19 октября 17 года). как расшифровывать скорости, координаты и прочую лабуду мне совсем непонятно, думаю должно быть какое-то специальное ПО для этого прибора иначе можно мозг сломать и все равно ничего не понять


    вот например текущее мировое время в секундах это флоат 00 80 fe 46 то есть 46fe8000
    вроде как каждые 10 циклов (то есть раз в секунду) оно меняется
    46fe8200
    46fe8400
    46fe8600
    и т.д.
    как перевести его в человеческие секунды - хз
     
    Последнее редактирование: 23 окт 2017
  17. brokly

    brokly Гик

    Может как то так ;)
    Код (C++):
    typedef struct {
    float UTC;
    float LAT;
    float LAT2;
    float LNG;
    float LNG2;
    float SPEED;
    float COURSE;
    long int DATE;
    float DECLIN;
    } RMC;
    typedef struct {
    float UTC;
    float LAT,LAT2,LNG,LNG2;
    short int QUAL,SNUM;
    float HDOP;
    short int HEIGHT,HDIFF;
    } GGA;

    typedef struct {
    short int CALCMOD;
    short int ID[12];
    float PDOP,HDOP,VDOP;
    } GSA;

    typedef struct {
    short int ID,ELEV,AZIM,SN;
    } INF;

    typedef struct {
    short int VIEW;
    INF AINF[12];
    } GSV;
    typedef struct TParamet{
    unsigned short int Header; //0xFACE
    long int Index;
    short int Flag1;
    long int RawData[19];
    short int Reserved1;
    short int GNSSPacketID;
    long Reserved2;
    RMC RMCR;
    GGA GGAR;
    GSA GSAR;
    GSV GSVR;
    unsigned char VALID_RMC, AUTO_GSA;
    unsigned short Flag2;
    float Pitch;
    float Roll;
    float Heading;
    float MagHeading;
    float LAT;
    float LNG;
    float SPEED;
    float Hout;
    float firm_version;
    float V_up;
    float Hbar;
    float LAT2;
    float LNG2;
    long int NavTime;
    };

    typedef union{
    TParamet Param;
    unsigned short int Data[sizeof(TParamet)/2];
    unsigned char DataB[sizeof(TParamet)];
    } TBody;

    typedef struct{
    TBody Body;
    unsigned short int CheckSum; //16bit XOR
    } TPacket2;

    typedef union{
      TPacket2 Packet2;
      unsigned char Data[sizeof(TPacket2)];
    } TConvert;


    unsigned char test[]={
      0xce , 0xfa , 0x14 , 0xeb , 0x01 , 0x00 , 0x58, 0x02,
      0x08, 0xed, 0x40, 0x00, 0xc7, 0x89, 0x44, 0x00, 0x9c, 0xf3, 0x44, 0x00, 0xc7, 0x4d, 0x0e, 0x00,
      0xb6, 0x05, 0x3f, 0x00, 0x45, 0xd3, 0x3c, 0x00, 0xc7, 0x4d, 0x0e, 0x00, 0x1d, 0x25, 0x67, 0x00,
      0x01, 0x52, 0x40, 0x00, 0x89, 0x1e, 0x3d, 0x00, 0xc7, 0x4d, 0x0e, 0x00, 0x4e, 0x30, 0x05, 0x00,
      0xa5, 0x90, 0x3e, 0x00, 0x6c, 0xc1, 0x3e, 0x00, 0x7b, 0xb0, 0x3e, 0x00, 0xc7, 0x4d, 0x0e, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xfe, 0x46, 0x00, 0x00, 0x6c, 0x42, 0x70, 0x77, 0x0a, 0x3f,
      0x00, 0x00, 0xf0, 0x41, 0xaf, 0x4a, 0xaf, 0x3d, 0xff, 0x6b, 0x93, 0x3d, 0xcd, 0x0c, 0x8e, 0x43,
      0x29, 0xea, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xfe, 0x46, 0x00, 0x00, 0x6c, 0x42,
      0x70, 0x77, 0x0a, 0x3f, 0x00, 0x00, 0xf0, 0x41, 0xaf, 0x4a, 0xaf, 0x3d, 0x01, 0x00, 0x08, 0x00,
      0x9a, 0x99, 0xd9, 0x3f, 0x5b, 0x00, 0x12, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x1b, 0x00, 0x08, 0x00,
      0x15, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x33, 0x33, 0x53, 0x40, 0x9a, 0x99, 0xd9, 0x3f, 0x33, 0x33, 0x33, 0x40, 0x0d, 0x00,
      0x08, 0x00, 0x38, 0x00, 0x16, 0x01, 0x28, 0x00, 0x0a, 0x00, 0x48, 0x00, 0x95, 0x00, 0x27, 0x00,
      0x12, 0x00, 0x35, 0x00, 0x50, 0x00, 0x22, 0x00, 0x15, 0x00, 0x17, 0x00, 0x67, 0x00, 0x1c, 0x00,
      0x1b, 0x00, 0x3c, 0x00, 0xc7, 0x00, 0x2b, 0x00, 0x45, 0x00, 0x3b, 0x00, 0x40, 0x00, 0x19, 0x00,
      0x46, 0x00, 0x2e, 0x00, 0xb5, 0x00, 0x1c, 0x00, 0x4d, 0x00, 0x15, 0x00, 0x60, 0x01, 0x00, 0x00,
      0x54, 0x00, 0x23, 0x00, 0x80, 0x00, 0x02, 0x00, 0x55, 0x00, 0x57, 0x00, 0x0f, 0x01, 0x1f, 0x00,
      0x56, 0x00, 0x1d, 0x00, 0x33, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x01, 0x00, 0x06, 0x01, 0xf1, 0x9c, 0xa6, 0x3f, 0xe4, 0xa2, 0x40, 0xbf, 0x52, 0xc2, 0x8c, 0x43,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x42, 0x4e, 0x7d, 0x0a, 0x3f, 0x00, 0x00, 0xf0, 0x41,
      0xe0, 0x29, 0xaf, 0x3d, 0xfe, 0xff, 0xcf, 0x37, 0xb1, 0x0e, 0xc1, 0x42, 0xa1, 0x4e, 0x02, 0x00,
      0x86, 0xd7, 0x93, 0x3c, 0x24, 0xeb, 0x9f, 0x42, 0xab, 0xea, 0x01, 0x00, 0x07, 0x10, 0xd1, 0xad,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xaf, 0x06, 0x3e,
      0x89, 0x73, 0x64, 0x3e, 0xd4, 0x58, 0x1c, 0x41, 0x0c, 0x68
    };

    void setup() {

      Serial.begin(19200);
      TConvert temp;
      memcpy((char*)(&temp),test,sizeof(temp));

      Serial.println();
      Serial.println(F("RMC: "));
      Serial.print(F("Word time (sec): "));
      Serial.println(temp.Packet2.Body.Param.RMCR.UTC,0);
      Serial.print(F("Latitude (deg): "));
      Serial.println(temp.Packet2.Body.Param.RMCR.LAT+temp.Packet2.Body.Param.RMCR.LAT2);
      Serial.print(F("Longitude (deg): "));
      Serial.println(temp.Packet2.Body.Param.RMCR.LNG+temp.Packet2.Body.Param.RMCR.LNG2);
      Serial.print(F("Speed (m/s): "));
      Serial.println(temp.Packet2.Body.Param.RMCR.SPEED);
      Serial.print(F("Course: "));
      Serial.println(temp.Packet2.Body.Param.RMCR.COURSE);
      Serial.print(F("Date: "));
      Serial.println(temp.Packet2.Body.Param.RMCR.DATE);

      Serial.println();
      Serial.println(F("GGA: "));
      Serial.print(F("Word time (sec): "));
      Serial.println(temp.Packet2.Body.Param.GGAR.UTC,0);
      Serial.print(F("Latitude: "));
      Serial.println(temp.Packet2.Body.Param.GGAR.LAT+temp.Packet2.Body.Param.GGAR.LAT2);
      Serial.print(F("Longitude: "));
      Serial.println(temp.Packet2.Body.Param.GGAR.LNG+temp.Packet2.Body.Param.GGAR.LNG2);
      Serial.print(F("Mode: "));
      Serial.println(temp.Packet2.Body.Param.GGAR.QUAL);
      Serial.print(F("Satellites: "));
      Serial.println(temp.Packet2.Body.Param.GGAR.SNUM);
      Serial.print(F("HDOP error: "));
      Serial.println(temp.Packet2.Body.Param.GGAR.HDOP);
      Serial.print(F("Height (m): "));
      Serial.println(temp.Packet2.Body.Param.GGAR.HEIGHT);
      Serial.print(F("Diff height (m): "));
      Serial.println(temp.Packet2.Body.Param.GGAR.HDIFF);
    }

    void loop() {
    }
     
    Igor68 нравится это.
  18. brokly

    brokly Гик

    А мне дельфи нравицца !

    Прикольно, что это устройство зачем то предоставляет данные широты и долготы в двух флотах, в первом - целое, во втором - все что после запятой. Видимо стремятся максимизировать точность. Но обычно, в таких железках целое и дробное подают раздельно в формате лонг. ИМХО во втором варианте точность потерять вообще невозможно.
     
  19. rewan871

    rewan871 Нерд

    Спасибо вам больше!

    Разобрался, присвоил каждому байту свое место)
    Код (Text):
                               ce fa 14 eb 01 00 58 02
        08 ed 40 00 c7 89 44 00 9c f3 44 00 c7 4d 0e 00
        b6 05 3f 00 45 d3 3c 00 c7 4d 0e 00 1d 25 67 00
        01 52 40 00 89 1e 3d 00 c7 4d 0e 00 4e 30 05 00
        a5 90 3e 00 6c c1 3e 00 7b b0 3e 00 c7 4d 0e 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 80 fe 46 00 00 6c 42 70 77 0a 3f
        00 00 f0 41 af 4a af 3d ff 6b 93 3d cd 0c 8e 43
        29 ea 02 00 00 00 00 00 00 80 fe 46 00 00 6c 42
        70 77 0a 3f 00 00 f0 41 af 4a af 3d 01 00 08 00
        9a 99 d9 3f 5b 00 12 00 03 00 0a 00 1b 00 08 00
        15 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 33 33 53 40 9a 99 d9 3f 33 33 33 40 0d 00
        08 00 38 00 16 01 28 00 0a 00 48 00 95 00 27 00
        12 00 35 00 50 00 22 00 15 00 17 00 67 00 1c 00
        1b 00 3c 00 c7 00 2b 00 45 00 3b 00 40 00 19 00
        46 00 2e 00 b5 00 1c 00 4d 00 15 00 60 01 00 00
        54 00 23 00 80 00 02 00 55 00 57 00 0f 01 1f 00
        56 00 1d 00 33 01 18 00 00 00 00 00 00 00 00 00
        01 00 06 01 f1 9c a6 3f e4 a2 40 bf 52 c2 8c 43
        00 00 00 00 00 00 6c 42 4e 7d 0a 3f 00 00 f0 41
        e0 29 af 3d fe ff cf 37 b1 0e c1 42 a1 4e 02 00
        86 d7 93 3c 24 eb 9f 42 ab ea 01 00 07 10 d1 ad
        00 00 00 00 00 00 00 00 00 00 00 00 fe af 06 3e
        89 73 64 3e d4 58 1c 41 0c 68

    ce fa – int заголовок
    14 eb 01 00 – long время работы в 1/10 секунды
    58 02 – int регистор флагов
        08 ed 40 00 c7 89 44 00 9c f3 44 00 c7 4d 0e 00
        b6 05 3f 00 45 d3 3c 00 c7 4d 0e 00 1d 25 67 00
        01 52 40 00 89 1e 3d 00 c7 4d 0e 00 4e 30 05 00
        a5 90 3e 00 6c c1 3e 00 7b b0 3e 00 c7 4d 0e 00
        00 00 00 00 00 00 00 00 00 00 00 00 – 19xlong массив сырых данных 19 штук
    00 00 – int Зарезервировано
    00 00 – int Идентификатор данных СНС
    00 00 00 00  - long зарезервировано
    00 80 fe 46 – float RMC Текущее мировое время в секундах
    00 00 6c 42  - float RMC широта В градусах, до десятичной точки
    70 77 0a 3f – float RMC широта В градусах, после десятичной точки. Т.о. для получения широты необходимо сложить эти два поля.
    00 00 f0 41  - float RMC долгота В градусах, до десятичной точки
    af 4a af 3d – float RMC долгота В градусах, после десятичной точки. Т.о. для получения широты необходимо сложить эти два поля.
    ff 6b 93 3d – float RMC СНС скорость в м/с
    cd 0c 8e 43 – float RMC СНС путевой угол в градусах
    29 ea 02 00 – long RMC дата В формате: ддммгг (день, месяц, год)
    00 00 00 00  - float зарезервировано
    00 80 fe 46 – float GGA Текущее мировое время в секундах
    00 00 6c 42 – float широта В градусах, до десятичной точки
    70 77 0a 3f – float широта В градусах, после десятичной точки. Т.о. для получения широты необходимо сложить эти два поля.
    00 00 f0 41 – float долгота В градусах, до десятичной точки
    af 4a af 3d – float долгота В градусах, после десятичной точки. Т.о. для получения широты необходимо сложить эти два поля.
    01 00 – int GGA режим 0 – координаты не определены 1,2,3 – координаты определены
    08 00 – int Кол-во используемых спутников
    9a 99 d9 3f – float Мера ошибки определения координат в плоскости горизонта
    5b 00 – int Высота в метрах
    12 00 – int Разность высот Не используется
    03 00  - int GSA режим счисления 1 – координаты не определены. 2 – координаты определены в плоскости горизонта. 3 – определены 3-ёх мерные координаты
    0a 00 1b 00 08 00 15 00 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 – 12xint GSA массив идентификаторов спутников Сигнал от спутников с данными идентификаторами используются в решении
    33 33 53 40 – float 3-ёх мерный показатель точности СНС PDOP
    9a 99 d9 3f – float Мера ошибки определения координат в плоскости горизонта HDOP
    33 33 33 40 – float Мера ошибки определения высоты VDOP
    0d 00 – int Количество спутников, которые могут войти в решение, действительно от 1 до 32
        08 00 38 00 16 01 28 00 0a 00 48 00 95 00 27 00
        12 00 35 00 50 00 22 00 15 00 17 00 67 00 1c 00
        1b 00 3c 00 c7 00 2b 00 45 00 3b 00 40 00 19 00
        46 00 2e 00 b5 00 1c 00 4d 00 15 00 60 01 00 00
        54 00 23 00 80 00 02 00 55 00 57 00 0f 01 1f 00
        56 00 1d 00 33 01 18 00 00 00 00 00 00 00 00 00
    01 - xint идентификатор, угол возвышения, азимут, отношения сигнал - шум

    00 - GSA флаг auto fix, 1–автоматический переход между 3-ёх мерным и 2–ух мерным определением координат включён. 0–отключён
    06 01– int Регистр флагов
    f1 9c a6 3f – float тангаж
    e4 a2 40 bf – float крен
    52 c2 8c 43– float курс системы
    00 00 00 00 – магнитный курс
    00 00 6c 42– широта системы
    4e 7d 0a 3f – долгота системы
    00 00 f0 41– скорость системы
    e0 29 af 37 – высота системы
    fe ff cf 37 – версия ПО
    b1 0e c1 42 – скорость подъема
    a1 4e 02 3c - барометрическая высота
    86 d7 93 3c – широта системы
    24 eb 9f 00 – долгота системы
    ab ea 01 00 - время работы системы после выставки
    07 10– контрольная сумма




    Дополнительный пакет
    d1 ad - Заголовок  
    00 00 00 00 - Угловая скорость вокруг оси X
    00 00 00 00 - Угловая скорость вокруг оси Y
    00 00 00 00 - Угловая скорость вокруг оси Z
    fe af 06 3e - Кажущееся ускорение вдоль оси X
    89 73 64 3e - Кажущееся ускорение вдоль оси Y
    d4 58 1c 41 - Кажущееся ускорение вдоль оси Z
    0c 68 - Контрольная сумма (хэш)
     
     
  20. rewan871

    rewan871 Нерд

    Спасибо большое!
    Только не могу понять как вы читаете из массива. Как на ардуино происходит преобразование форматов?

    Мне в конечном итоге нужно чтобы arduino принимала эти данные с serial порта, переводила в нормальный вид, потом производила некоторые корректировки значений, преобразовывала их обратно в исходный вид и отсылала уже по другому serial порту.