Jump to content

    

Dubov

Участник
  • Content Count

    418
  • Joined

  • Last visited

Everything posted by Dubov


  1. Прошу рассказать о каких-либо примерах применения Python в Embedded. Все чаще в вакансиях встречаю требование знать Python. Ума не приложу где его можно применить программисту C++. Поделитесь опытом, как Python и скрипты сделали вашу жизнь проще. Возможно, в тестировании как-то это полезно?...
  2. программа на C++ Qt активно использует высокоуровневую интеграцию с питоном. По сути программа отправляет в интерпретатор строки и читает результаты из файла. При переносе на другой компьютер exe-файл на запускается по причине отсутствия в переменной PATH пути именно к моему питону с библиотеками. Можно как-то "научить" мой exe-шник брать библиотеки где нужно без правки PATH?
  3. интересно, моя программа написана на C++ Qt. Python лежит в отдельной папке, Python не установлен (в переменной PATH его нет). В Qt я указываю расположение библиотеки питона в нужной папке и include там же. При попытке запустить программу из Qt Creator - программа не запускается(в консоли сообщение: приложение неожиданно завершилось). Устанавливаю питон как нужно. Приложение запускается из Qt Creator. Компилирую, получаю exe, удаляю питон(чищу PATH), питон остается только в отдельной папке как было изначально. Приложение работает как нужно (запускаю уже без Qt Creator)
  4. на рабочей станции уже может быть установлена версия питона, отличающейся от моей. мне нужно решение на подобии virtual env. как его реализовать для моего exe?
  5. дело в том, что моя программа на C++ использует python. Для корректной работы необходимо чтобы PATH содержал пути к python. Я бы хотел положить python рядом с exe (на каталог выше) и сказать моему exe искать python там.
  6. доброго времени суток! Мое приложение использует visa32.dll для обращения к приборам. Как я могу распространять свою программу? правомерно ли будет распространение библиотеки вместе с моей программой? Пытался найти политику на сайте NI - не нашел :(
  7. несовсем ясно. NI VISA скачивается бесплатно с их сайта. Если моя программа использует эту библиотеку - я должен покупать лицензию? или я должен если моя программа поставляется с библиотекой?
  8. Прошу помочь в понимании технологии WebRTC. В чем отличие от обычного web и как происходит обмен между браузерами, минуя сервер, если у всех динамический ip? Как это работает? откуда браузер узнает об адресе другого браузера?
  9. Есть проект веб сервера на микроконтроллере. Есть сайт и доменное имя. Каким образом привязать страницу веб сервера микроконтроллера к доменному имени в Интернет чтобы любой мог получить доступ к странице, расположенной на микроконтроллере?
  10. Хочу получить данные с прибора ерез RS232. Через Putty все работает хорошо, посылаем 'ID' - в ответ получаем строку идентификации, посылаем 'QM' - получаем строку измерительных данных. В своей программе после посылки 'ID' я получаю '0', повторная посылка дает строку идентификации, но при посылке 'QM' получаю строку, полученную ранее, чтобы получить нужный ответ нужно отправить QM много раз. В чем может быть дело? Возможно нужно как-то очищать буфер? или еше что... как putty это делает?
  11. спасибо за исправление. Я пробовал менять перевод строки - вообще ничего не работает. Так что перевод строки верный.
  12. Коллеги, очень нужна консультация. есть простой проект на PyQt с таким кодом: CODE#!/usr/bin/python3 # -*- coding: utf-8 -*- from engine import * import sys from PyQt5.QtWidgets import (QMainWindow, QTextEdit, QAction, QFileDialog, QApplication, qApp, QTabWidget) from PyQt5.QtGui import QIcon class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() #пользовательские функции wait(self) print(1) print("Hello") print2() if __name__ == '__main__': app = QApplication(sys.argv) #QApplication.setStyle(QStyleFactory.create('Fusion')) myGUI = MainWindow() sys.exit(app.exec_()) тут реализована инициализация окон и различных диалогов. Пользовательские функции CODE wait(self) print(1) print("Hello") print2() реализуют лишь последовательный вызов различных окон, сообщений и пр. как сделать так, чтобы пользователь не видел ничего кроме пользовательских функций и имел возможность, создав свой файл и написав просто вызов этих функций, увидел такой же результат как если бы ввел весь код проекта. Можно как-то настроить среду, возможно, какие-то стартовые скрипты есть (я работаю в Eclipse PyDev, но можно без проблем на любую другую перейти).
  13. Доброго времени суток! На рабочем месте возникла необходимость производить испытания прочности изоляции измерительных приборов. Какие средства защиты необходимы для удовлетворения действующим нормам? Знаю, что как минимум нужны перчатки диэлектрические, ограждение, оповещающие знаки. Дело в том, что что существующие правила эксплуатации нгаписаны для объектов электроэнергетики и не совсем понятно как именно их применять например в лаборатории.
  14. Подскажите как првильно подключить осциллограф к шине RS485. Я подключаю вход1 осциллографа на DATA+, Вход2 на DATA-, а земли входов на GND. Это верно? Сигналов не вижу на дисплее Еще нашел вот такое странное подключение (см. фото). Оно верное?
  15. Цитата(Александр1 @ Nov 1 2016, 11:10) Вы правильно подключили осциллограф. Можно наблюдать на экране два противофазных сигнала, а можно включить суммирование каналов, но в одном из каналов включив инвертирование, и наблюдать один сигнал. Или сразу включить отображение разностного сигнала двух каналов осциллографа (если есть такой режим). А почему вы ничего не наблюдаете? Может, не правильно выбраны параметры на приборе? Или в шине отсутствует обмен? Странно, но в руководстве на осциллографы написано так:
  16. Цитата(Александр1 @ Nov 1 2016, 10:56) Не верное. Сигналы DATA+ и DATA- это один и тот же сигнал, только прямой и инверсный. В приемнике выделяется именно разностный (дифференциальный) сигнал. А как можно один из сигнальных проводов подключить на корпус осциллографа? Тем более, что он будет замкнут на корпус через второй кабель. как же тогда подключит осциллограф?
  17. Есть плата с stm32f439 и sdram. В программе для скорости необходимо разместить массив данных во внутренней памяти. Достатачно ли для этого использовать класс памяти register?
  18. Цитата(jcxz @ Jul 3 2016, 18:38) Кстати: IAR позволяет обойтись без pragma. Не так случайно: static uint8_t buffer[2*1024*1024] __attribute__ ((section (".sram_data")));
  19. Цитата(Сергей Борщ @ Jul 3 2016, 12:16) "Это" сработает. Но где вы тут видите размещение массива, о котором спрашивали? aaarrr вам дал единсвенный правильный ответ на ваш вопрос. В том примере что я нашел происходит размещение массива в динамической памяти КодВыделение массива a в памяти SRAM    a = (float *)calloc(n1, sizeof(float));   // Инициализация матрицы   // Здесь одномерный массив представляется в виде двумерного    //  *(float*) (aa +4*i)  - выполняется размещение в динамической памяти (SDRAM)    // с адреса aa=0xD0100000 чисел массива типа float. i-индекс, изменяющийся с    // шагом 1. Его множим на 4, так как тип float занимает 4 байта       for(im=1;im<=nn;im++)  {         for(jm=1;jm<=nn;jm++)         { *(float*) (aa +4*(im+(jm-1)*nn)) =1.0f*((float)(im*jm));         *(float*) (bb +4*(im+(jm-1)*nn))=1.0f/(*(float*) (aa +4*(im+(jm-1)*nn)));         *(float*) (cc +4*(im+(jm-1)*nn))=0.0f;           }   } Где аа - это адрес. Полный код здесь: http://www.khnu.km.ua/root/kaf/ksm/sayt2/s...eb/stm32_4.html Просто я подумал почему бы не указать адресс внутренней sram. Спасибо за подсказку, просто подумал что есть еще варианты...
  20. Нашел пример прямой записи по адресу в sdram: // с адреса aa=0xD0100000 чисел массива типа float. i-индекс, изменяющийся с // шагом 1. Его множим на 4, так как тип float занимает 4 байта for(im=1;im<=nn;im++) { for(jm=1;jm<=nn;jm++) { *(float*) (aa +4*(im+(jm-1)*nn)) =1.0f*((float)(im*jm)); *(float*) (bb +4*(im+(jm-1)*nn))=1.0f/(*(float*) (aa +4*(im+(jm-1)*nn))); *(float*) (cc +4*(im+(jm-1)*nn))=0.0f; } } Разве не сработает если вместо аа подставить адрес начала sram?
  21. А разве компилятор не размещает переменные во внутренней памяти по умолчанию? Ведь для записи и чтения в sdram обычно существуют специальные функции типа sdram_write();
  22. Цитата(aaarrr @ Jul 2 2016, 18:04) Нет. Спасибо. Какие средства языка Си нужно использовать для размещения массива во веутренней памяти?
  23. Формулы вычисления емкости при паралельном/последовательном включении конденсаторов я знаю. Но на схеме смущает конденсатор 20мкФ. Как его учитывать не пойму...
  24. почему не будет протекать ток по этому конденсатору?
  25. Цитата(Ydaloj @ Apr 1 2016, 16:11) потому что, имея группу по электробезопасности, подтверждаешь знание устройств электроустановок, и не будешь фазный провод маркировать жёлто-зелёным проводом. а так... можно знать, как трассировать высоковольтную плату с IGBT, но, как дело дойдёт до монтажа в шкаф - у всех сразу начинаются непонятки. Один все соединения одним цветом делает, второй рядом тащит высоковольтку и сигнальную линию, третий все земли под один болт собирает. Группа дается на определенное время, потом опять нужно подтверждать. На стороне это стоит денег. Так что это обязанность работодателя - обеспечить корочкой. Да и наличие самой корочки не гарантирует НЕ собирание всех земель под один болт... Цитата(Tiro @ Apr 1 2016, 16:16) Далеко не глупое, только зависит от работодателя, который и должен обучить. Начиная с 3-й, нужно обладать знаниями об оборудовании объекта. Вооот! Должен обучить, а не требовать наличие группы.