Есть измерительный прибор. Замечательный, Agilent 34401a. Необходимо написать программу на C#, используя драйвер скачанный с сайта Agilent (FTD2XX_NET.dll). Как написано
здесь, перед использованием скачал и установил IviSharedComponents_2.0.0.exe.
Где-то в примерах достал код программы и сделал по своему. В главное окно кинул кнопку. Программа состоит только из обработчика прерывания по нажатию кнопки и вывода ошибки на экран:
Код
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
[i]using Agilent.Agilent34401.Interop;[/i]
namespace SKVTprj
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Agilent34401Class dmm = new Agilent34401Class();
try
{
dmm.Initialize("ASRL4::INSTR", false, true, "Simulate=false");
}
catch(Exception exp)
{
MessageBox.Show(exp.Message);
}
}
}
}
Подключаю Agilent кабелем RS232 (родной, помоему) к порту COM4, компилю, и нажимаю кнопку.
Результат - ошибка на строчке "dmm.Initialize("ASRL4::INSTR", false, true, "Simulate=false");", а выводится, точно не помню, но что-то типа не может IO-данные принять как единое... При этом я мониторил COM-порт программой "Free Serial Monitor" и видно, что программа что-то шлет короткое и не в ASCII-формате, а Agilent отвечает нормально (суть ответа, наверное, сообщение об ошибке).
Может мне надо как-то настройки связи Agilent настроить (я ничего не трогал ничео) или я что-то в программе не так сделал (может перед вызовом initialize() нужно что-то еще сделать), но когда я передаю функции initialize параметр "Simulate=true" (то бишь работаю с симуляцией прибора), то ошибок нет и даже можно проводить измерение напряжений и т.д.
Думаю ничего сложного нет, просто я что-то упускаю. Может тупо надо скорость в приборе настроить. Но ведь в программе скорость связи нельзя установить пока не проинициализируешь объект типа Agilent34401Class. Значит в приборе должна стоять какая-то фиксированная скорость связи или скорость автоматически настраивается.
И еще - я связывался с прибором при помощи утилиты-менеджера из IOLibSuite_15.1.12008.0.exe. Связь устанавливал, но менеджер поставил галочку предупреждения, мол прибор имеет нехорошее ID. Наверное тоже что-то с непониманием данных, которые шлются друг другу.
Вообщем выслушаю любое предложение. Заранее благодарю.