Здравствуйте.
Пытаюсь работать с библиотекой
libnodave Суть библиотеки опрашивать удаленный контроллер фирмы Siemens. Сразу скажу, проблема у меня не в опросе контроллера, а в использовании кода этой библиотеки. Видимо не хватает познаний.
Подключил dll, так же с ним шел файл libnodave.net.cs, написал простенький пример который приводится в документации, работает.
Начал немного усложнять
В доке пишется что нужно использовать методы
PDU p;
daveResultSet rs;
davePrepareReadRequest(dc, &p);
daveAddVarToReadRequest(&p,daveInputs,0,0,1);
daveAddVarToReadRequest(&p,daveFlags,0,0,4);
daveAddVarToReadRequest(&p,daveDB,6,20,2);
daveAddVarToReadRequest(&p,daveFlags,0,12,2);
res=daveExecReadRequest(dc, &p, &rs);
Только при наборе в VS 2012, к примеру метод
davePrepareReadRequest(dc, &p) интеллисенс ничего не выдает, типа нет этого метода. Начинаю копаться в файле libnodave.net.cs, который шел вместе с библиотекой, в нем есть вот такой код
[DllImport("libnodave.dll"/*, PreserveSig=false */ )]
protected static extern int davePrepareReadRequest(IntPtr dc, IntPtr p);
public PDU prepareReadRequest() {
PDU p=new PDU();
davePrepareReadRequest(pointer, p.pointer);
return p;
}
Вроде как прописан prepareReadRequest() , но с другим синтаксисом, здесь он возвращает PDU и не принимает аргументы. Как это понять?
Прикладываю этот простенький пример
СкачатьConsoleApplication11.rarПодскажите хотя бы в каком направлении двигаться, а то я в ступоре.
Спасибо.