Перейти к содержанию
    

Grigorij

Участник*
  • Постов

    124
  • Зарегистрирован

  • Посещение

Весь контент Grigorij


  1. Судя по сайту Hologram похож на Emnify. А вот сим-кам от Emnify мы пользовались в своих приборах с модемами от SIMCOM (только 2G) и Centerion (2G/3G/4G). В целом все работает и данные ходят нормально (у нас TCP/SSL/MQTT, плюс отдельно FTP), и глобальное покрытие, и тариф почти один на все страны. Однако самое интересное начинается (как заметил CADiLO), когда что-то перестало работать или работает не так, как надо. В итоге имеем: надо смотреть не только страну, но и с какими операторами в этой стране есть договор (у нас были случае, когда у клиента ловил только тот оператор, с которым у Emnify не было договора) если прибор не выходит на связь, то в ряде случаев выяснить проблему не возможно (у нас например прикол был в Латвии: имеем 2 заведомо рабочие симки из одной партии - одна работала, другая нет; в офисе обе симки после возврата из Латвии продолжали работать нормально) За все время тех.поддержка Emnify приятно удивила только одни раз, когда они связались с местным оператором и проверили работу всех систем. Но это видимо было исключение из правил, так остальное время были стандартные отписки.
  2. Просто посмотрите готовые реализации и выберете ту, которая вас устраивает для вашей же программы. Ну вот хотя бы этот вариант с GitHub - см функции zmodem_rx и ниже, а лучше вообще весь исходник.
  3. Посмотрите китайцев SZOMK. У них сравнительно большой ассортимент корпусов с вменяемыми ценами (есть и с батарейным отсеком под 3 АА). Мы у них 2 корпуса берем. В одном они нам отверстия дополнительные нарезают (мы от руки чертеж набросали, и этого оказалось этого достаточно). Качестве вполне неплохое. Плохо только то, что чертежи в основном по запросу (на сайте не все чертежи есть), и на них иного не все размеры проставлены. И еще они перестали 3D модели корпусов высылать.
  4. Вы при вызове ppp_set_auth() задаете имя пользователя и пароль для авторизации. Они корректные для MTC, а вот корректный ли APN Host name задан с помощью AT+CGDCONT? Какая у вас последовательность AT-команд до запуска LWIP? Ну и выше уже предложили проверить, все ли данные от модема в LWIP пересылаются.
  5. Вполне возможно. Я порылся в своих платах и нашел файлы, которые в 16-ом или 17-ом были сделаны. В них нет информации об Altium, а начало файла выглядит точно так же, как на вашем примере. В версии 18.1.7 build 191 уже есть информация об Altium в Gerber-файлах. 19-ый Altium я не использовал, ну а пример из 20-го я уже приводил. Во всех случаях я Altium ставил "на чистую" без импорта предыдущих настроек. Так что очень похоже на какое-то нововведение (либо есть какая-то дефолтная настройка по добавлению этой информации, которую я найти не могу пока).
  6. Пример, который я приводил, из Gerber-файла для слоя Bottom (там же в примере есть и описание, какая версия Altium-а это делает "по умолчанию"). Да и для других слоев тоже есть эта информация в самом начале файла. Все файлы при этом сгенерированы через Output Job. Если же сделать экспорт Gerber-файлов из встроенного CAM Editor, то в настройка экспорта для CAM Editor-а можно указать "Suppress comments (G04)" и убрать все эти упоминания. А вот для Output Job я как-то пока не нашел такой возможности.
  7. К слову Altium в gerber-а тоже добавляет информацию о себе. Достаточно открыть файл в блокноте и проверить первые 5 строчек. Там используется код G04 и приводится информация о конкретном слое: G04* G04 #@! TF.GenerationSoftware,Altium Limited,Altium Designer,20.0.9 (164)* G04* G04 Layer_Physical_Order=4* G04 Layer_Color=16711680* %FSLAX44Y44*% В pick&place файле тоже может быть информации об Altium-е (включая полный путь к проекту на компе). А вот в файлах сверловки я информации об Altium-е пока не находил (если конечно не брать в расчет файл с отчетом с расширением DRR)
  8. Если речь именно про ANSI C, то можно: Вариант 1. Если речь именно про ANSI C, то можно: Вариант 1. случайно отправил раньше времени, продолжение... Вариант 2. Сделать что-то типа такого: enum { CONFIG_FIELD_1, CONFIG_FIELD_2, } void SaveConfig(int type, void * value) { // забираем семафор switch (type) { case CONFIG_FIELD_1: config.var1 = *((int *)value); break; case CONFIG_FIELD_2: config.var2 = *((double *)value); break; } // сохраняем все // отдаем семафор } // где-нибудь в коде int newValue = 5; SaveConfig(CONFIG_FIELD_2, (void *)&newValue); Вариант 3. Для каждого типа данных сделать свои функции Ну и наверняка можно еще что-нибудь придумать, так как выше - это первое что пришло в на ум из того, что сам использовал в коде в разное время. Все зависит от вам и вашей программы, т.к. совсем универсального решения нет. и редактирование нормально не работает. Вариант 1. Это посмотреть на va_start, va_list, va_end. Примеры можно найти здесь
  9. Я так понимаю вы ходите Pick and Place файл получить. Тогда - статья про Pick and Place на сайте AD
  10. Есть еще один вариант, который в принципе не зависит от конкретного модуля и не требует отдельного аппаратного навигационного модуля. Можно использовать сервис типа этого https://combain.com. Проверял на модеме от Gemalto, работает вполне не плохо, но есть целый ряд минусов: Самый весомый - сервис платный. И для постоянной навигации (типа трекер) не подходит, т.к. дешевле уже навигационный модуль ставить Запрос надо отправлять по HTTP, соответственно наличие интернета - обязательно В зависимости от конкретного модема может потребоваться много "ручной работы" (собрать информацию о вышках с помощью AT команд) У нас приборы стационарные. Мы думали использовать этот сервис для обнаружения факта существенного перемещения приборов (например из одного здания в другое). И даже потестировали их бесплатный доступ. Но пока отказались от этого функционала. Просто пока не ясно, насколько он нам реально нужен.
  11. Странно. Я сейчас попробовал создать комнату, вроде все работает (версия 20.0.9). Сделал это следующим образом. Выбрал необходимые компоненты, затем Desing->Room->Create Rectangle Room from selected components. Вокруг компонентов появилась комната с названием RoomDefinition_1. Размещение и трассировку потом также получилось скопировать (Desing->Room->Copy Room Formats)
  12. Комнаты можно добавлять на плате вручную. Если нарисовать комнату поверх компонентов, то эти компоненты должны автоматом попадать в эту комнату (см. цитату ниже из мануала на AD). А дальше можно копировать размещение и трассировку между комнатами, как вы и делали до этого в случае, если части схемы были на разных листах.
  13. Все что показывает отладчик (Keil, IAR, MSVS и т.д.) - это все на усмотрение разработчиков конкретных сред и то, как они округляют число при выводе. Выше уже написали, что далеко не все вещественные числа можно точно представить с использованием float или double. И здесь нет никакой магии, просто особенность стандарта и способа представления таких чисел.
  14. И в догонку к предыдущему ответу. Решение проблем (если именно такое точно представление требуется) - использование чисел с фиксированной запятой (и соответствующей математики). Про данный тип чисел море статей, которые легко находятся в гугле, а на том же GitHub можно и готовые библиотеки найти.
  15. Выскажу предположение. Возможно оператор менял настройки для используемых SIM карт. У нас, например, все приборы, которые используются в ЕС, поставляются с SIM картами Emnify. У меня есть полный доступ ко всем SIM картам. Собственно для любой SIM карты я могу запретить/разрешить работу в 2G/4G и 3G сетях, или например, запретить работу с конкретными операторами. Думаю здесь описывается ситуация, когда оператор у себя в системе изменил настройки для конкретной SIM карты тем же самым образом. А так да, SIM800C - 2G модуль и ни в каких других сетях он работать не будет.
  16. Просто сделайте пустой PCBDOC файл, настройте в нем название слоев/сетку/еще что-то и используйте его как шаблон при создании новых плат. В этом случае не придется каждый раз настраивать все заново, либо брать предыдущий файл и удалять из него объекты/цепи и т.д.
  17. Brandner - Эстония - дорого иногда очень дорого (нашим партнерам пришлось там платы заказать, вышло почти в 5 раз дороже, чем у китайцев, могу в личке примерные цены для сравнения написать) CircuitHub - США - до сих пор регулярно мне рассылку присылают, т.к. мы планировали у них как-то сборку для одних клиентов заказывать (но так и не заказали) Поэтом я бы тоже на резонит посмотрел.
  18. У IAR-а есть плагин для FreeRTOS, который может показывать текущее состояние задачи (выполняется, заблокирована и т.д.). Плагин включается в настройках проекта Debugger->Plugins->"галочка напротив "FreeRTOS and OpenRTOS". Соответственно первым делом имеет смысл посмотреть, не является ли задача полностью заблокированной все время (или вообще она хотя бы создается). Следующим шагом, можно добавить задачу мониторинга, которая будет с заданным интервалом вызываться и выводить с помощью printf в отладку состояние всех задач (смотреть в сторону uxTaskGetSystemState или вот эту статью https://habr.com/ru/post/352782/) Если задача действительно запускается и выполняется (хотя судя по описанию - это маловероятно и она скорее всего полностью заблокирована), то ставить breakpoint или по шагам выяснить какой из while(1) висит.
  19. Судя по сайту у Quectel-а модули на подходе. BG95-M4 (https://www.quectel.com/product/bg95.htm). Но я пока так и не понял, когда можно будет в руках их покрутить. А так похоже да, кроме как у SIMCom-а ни у кого не видно больше.
  20. Попробуйте перед настройкой PDP отключиться от сети (только от Pocket Domain Service) и подключиться заново. Будет примерно следующая последовательность (команды по памяти написал, поэтому лучше проверить их): // я так понимаю модем у вас автоматически подключается // предлагаю в этот момент отключиться AT+CGATT=0 OK // настроить PDP Context AT+CGCONT=1,"IP","internet.beeline.ru" OK // подключиться заного AT+CGATT=1 OK AT+CGATT? +CGATT:1 // и вручную активировать контекст AT+CGACT=1,1 OK AT+CGACT? +CGACT:1 // и посмотреть выделен ли вам IP адрес AT+CGPADDR=1 +CGPADDR: 1,”30.38.217.74″ // возможный варинат ответа ATD**99***1# CONNECT Если у вас команда AT+CGPADDR покажет нормальный IP адрес, а LWIP все еще будет выдавать PPPERR_USER, то попробуйте сократить последовательность команд до следующей AT+CGATT=0 OK AT+CGCONT=1,"IP","internet.beeline.ru" OK ATD**99***1# CONNECT Ну и вот здесь можете еще пример подключения посмотреть - ссылка на m2msupport.net Все еще контролируют, но далеко не всегда. У наших клиентов в РФ обычно логин-пароль - пустые, а вот в ЕС - чаще всего установлен и без корректных настроек логин-пароль GPRS не работает.
  21. Попробуйте проверить цвет страницы в настройках документа (опция Sheet Color) в самом Altium-е. Очень похоже, что у вас там что-то другое выбрано, отличное от белого цвета. В 17-ом Altium кажется можно найти в Design->Document Preference (но я точно не помню). В 18-ом эта опция на скриншоте (панель Properties). По поводу стрелок - попробуйте перерисовать их с использование инструмента Polygon (если конечно они сейчас не им нарисованы). Он позволяет указать заливку цветом.
  22. Возможное решение с официального форума RPi
  23. Думаю много времени ушло на форматирование и запись в файл, а не саму генерацию чисел. Ну да и ладно, не будем тратить на это время. А основной инструмент электронщика, на мой взгляд не С или его аналог, а любой, который максимально быстро и просто решает поставленную задачу. Например, если мне будет проще и быстрее 50 значений измерить обычным тестером (особенно если это разовая задача), а потом по ним построить график в каком-нибудь Excel-е, то я именно так и сделаю, чем буду пытаться прикрутить какую-то железку с непонятным характеристиками и библиотекой на питоне. К слову я из свой практике только одну железку вспомнил, к которой можно было бы худо-бедно применить этот Fork, да и то мы выкрутили смастерив стенд на основе своих предыдущих железок, которые в ящиках нашлись.
×
×
  • Создать...