Я ищу способ строить график U2 = f (U1). На самом деле I2 = f (U1) для MOSFETов, но это не имеет значения:
Что у меня есть: два популярных UT61E мультиметра с подключением RS232 и ПК (Windows, 8 ) с двумя последовательными портами.
Что я могу: я могу написать HTML-приложение GUI с JavaScript для построения графиков (.HTA) То, что я хочу познать: как передавать данные из UT61E для моего приложения? Это может быть неправильно использовать .hta, но сейчас я могу писать только так, я любитель.
Где я могу найти руководства для решения подобной задачи? Шаг за шагом?
Спасибо!
Последний раз редактировалось 001 Вт апр 08, 2014 12:14:43, всего редактировалось 1 раз.
Я же написал как
Какие там в винде терминальные программы есть? Putty знаю - точно работает. Вот запустите её, откройте порт нужный, подключите мультиметр и смотрите, что сыпать будет, попутно подбирая скорость из стандартных.
ploop писал(а):откройте порт нужный, подключите мультиметр и смотрите, что сыпать будет, попутно подбирая скорость из стандартных.
Человек хочет узнать как из html и javascript получить доступ к этим данным. ИМХО, простыми способами НИКАК. Ни javascript, ни, тем более, html доступа к хардварным портам не имеет.
Может можно использовать java аплет, или ставить, например php, из него вроде можно достучаться, или писать какой-нибудь прогой выход с порта в лог-файл и читать его тем-же php... Или программировать на C++, C# и т.п.
Но мои познания в программировании урывочны — html и javascript знаю по веб-вёрстке, пишу в блокноте.
А вот что такое ActiveX только что прочитал в википедии.
С портами опыта совсем нет — что почитать, чтобы представлять как и чего?
Что нужно сделать, чтобы представить данные порта как текстовый файл?
Сам внимательнее посмотрел на ту страничку, что давал, мало это поможет.
Вообще ActiveX очень устаревшая технология. Элемент ActiveX это по сути программа, написанная на языке программирования общего назначения, типа С++ и т.п. Элемент внедряется в какой-либо документ, например Word файл, лист Excel, страницы HTML (поддерживается только IE!), ну и другие типы документов, и реализует общедоступный интерфейс, используя который из программы контейнера можно с ним взаимодействовать, т.е. вызывать методы и получать каки-либо данные.
Как я уже писал в браузерах кроме IE не поддерживается, т.к. является огромной дырой в безопасности. И поддержка в современных версиях IE тоже под вопросом. Элемент ActiveX должен быть предварительно установлен и зарегистрирован в системе, иначе ничего работать не будет.
Так вот, по ссылке находит просто коммерческий элемент, который надо предварительно купить. Есть ли бесплатный аналог я не знаю, надо искать, погуглите free activex com-port. Если есть там будет и описание интерфейса и прочее.
Короче я сомневаюсь, что вы простой путь выбрали.
А с порта часто идет простой текст, прям как я тут печатаю. Ну с какими-нибудь маркерами начала/конца текста.
The RS232 function will be activated if the RS232 pin is pulled to and asserts at V-.
The serial data sent to SDO pin once every A/D conversion cycle. The data format
complies with JIS 7Bits-transmission code with a baud rate of 19230. The host can use
RS232 interface to read the data. A single data packet includes a start bit (always 0), 7
data bits, an odd parity check bit, and a stop bit (always 1). The high and low voltage
levels correspond to DGND and V- respectively. SDO remains at 1 (high) when it is inactive. Hence the start bit (0) could be used as the triggering signal to begin the
reading process. The following figure shows the data format of a single packet. The
LSB is sent first and the MSB is sent last.
One data block consists of 14 packets, or 140 bits. The following figure shows the
format of a data block. The range packet indicates the full scale range of the meter.
Digit4 through digit0 are just the digits on the LCD panel. The function packet
indicates the measurement mode of the meter. Status, option1~4 give the status of the
meter. CR and LF are delimiters used to separate the blocks.
И дальше там подробно описываются пакеты.
Что с этим можно сделать? Я тут узнал, что порт нужно "открывать" и т.п. Как это и с чем это едят?
001 писал(а):Я тут узнал, что порт нужно "открывать" и т.п. Как это и с чем это едят?
Будет найден ActiveX - будет о чем говорить. Взаимодействие с портом это задача для другого языка программирования, никак не для JavaScript. В JavaScript никаких портов нет. И доступа к железу тоже нет.
ок. Может тогда стоит сменить язык?
Что для этого лучше подойдёт?
Или сообразить "костыль", пишущий из порта в файл, а уж имея два столбца чисел я что угодно наворочу и на javascript.
Весь вопрос сводится к получению этих чисел…
Или пошаговому изучению иного языка и общепринятого метода общения с портом.
Вариант 3 — при наличии тут знающих людей, могу предложить написание этого костыля за деньги с разъяснением мне что к чему.
001 писал(а):ок. Может тогда стоит сменить язык?
Что для этого лучше подойдёт?
Если вы на JavaScript программировали, то любой язык с Си-подобным синтаксисом, С# или Java, например. Для С# надо будет устанавливать .NET, для Java - Java машину. Среды разработки бесплатные. Ну и само собой любой С++. Однако все они сильно сложнее чем JavaScript.
001 писал(а):Или сообразить "костыль", пишущий из порта в файл, а уж имея два столбца чисел я что угодно наворочу и на javascript.
Костыль тоже вариант. А файл прочитать сможете? Из JavaScript они, вроде, тоже не читаются, может для .HTA эти ограничения отсутствуют.
Тогда надо, как вам уже советовали, посмотреть таки вывод с мультиметра какой-либо прогой, например http://www.putty.org/
А потом найти прогу, а может и эта может, для ведения лога в файл.
001 писал(а):Или пошаговому изучению иного языка и общепринятого метода общения с портом.
Чтения из порта задача с одной стороны простая, с другой требует представления о многопоточности, в JS такого понятия нет. Чтение должно осуществляться непрерывно в отдельном от UI потоке, с занесением данных в буфер. Может быть в современных языках типа C# все реализуется просто, но я только на VC++ лет 10 назад много кодил, сейчас лучше уже новые языки использовать.
ks0 писал(а):надо, как вам уже советовали, посмотреть таки вывод с мультиметра
В даташите на микросхему (пост #9) подробно описывается всё что посылает мультиметр в порт.
А вот что с этим делать (т.е. как в компьютере этим воспользоваться) я не знаю.
ТС, могу поредкмендовать изучить какой-то простой ЯП, нативно поддерживающий работу с COM портом (чтобы проще было для новичка). Например.
Или в крайнем случае, dll облегчающую работу с портом.
А вообще, вам срочно надо? А то я подумываю приложение на Qt накатать, там делов-то на вечер чисто показания вывести, долго только интерфейс и все красивости разрисовывать. Кроссплатформенное, разумеется.
Правда у меня UT71C, но шлют они, думаю, одинаково.
ploop, срочность может компенсироваться ценой вопроса
По ссылкам выше в общем-то все наработки по софту для этих мультиметров.
Мне нужно решить конкретную задачу и, главное, понять, как использовать сигнал от железки через ком-порт.
тогда прошу условия в ЛС.
Кстати, у UNI-T под каждую модель свои заморочки (передаётся ведь содержимое дисплея, а они разные — см первую и вторую ссылки)