Rabbit_Vegitc
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору День добрый. Такая проблема. По программе. Создал проект с формами. Кроме стандартной вкладки и формы создал ещё класс в отдельной вкладке. В итоге: frmCOP.cs - форма с текст боксами и кнопками, frmCOP.cs класс где пишется функционал для текст боксов и кнопок, SCIEC625_CLIENT.cs класс через который идёт обращение к dll (которую добавил в проектSCIEC625_CLIENT.dll). Теперь по железкам есть КОП порт с 1 его стороны это порт как у современных принтеров, с другой стороны это GPIB порт. К этому Коп порту идёт диск с указанной выше .dll и прочей писаниной, что куда втыкать. Так же присутствует фазометр, железка тупая, к ней нет ни ПО, ни дров, ни .dll стиль работы таков выводит инфу на табло и на свой GPIB порт (единственный выход в фазометре через который можно железку с ПК подружить). Так смысл и есть подружить фазометр через КОП порт с ПК. Мои действия я разделил код на 5 частей. 1. инициализация порта для дальнейшей работы. 2. включение дистанционного управления (чтоб считывать с GPIB порта фазометра инфу). 3 послать пробный байт в фазометр 4. получить байт с фазометра 5. приём потока информации в массив Ну собсно и дальнейшая обработка. Получились только 1 и 2 пункт. Прога составлена в стиле (пропущу инициализацию и включение дистанционного управления): в классе SCIEC625_CLIENT.cs пишу: //extern "C" __declspec(dllexport)int atn1(); // Включение командного режима [DllImport("SCIEC625_CLIENT.dll")] public static extern int atn1(); // Включение командного режима //extern "C" __declspec(dllexport)int mla(BYTE number); // Назначает прибор приёмником [DllImport("SCIEC625_CLIENT.dll")] public static extern int mla(byte t); // Назначает прибор приёмником //extern "C" __declspec(dllexport)void mtac(); // Назначение платы источником [DllImport("SCIEC625_CLIENT.dll")] public static extern int mtac(); // Назначение платы источником //extern "C" __declspec(dllexport)int transb (BYTE byte, unsigned int t); // Передача байта в прибор //[DllImport("SCIEC625_CLIENT.dll")] //public static extern int transb(byte b, uint t); // Передача байта в прибор //extern "C" __declspec(dllexport)int atn0(); // Сброс командного режима [DllImport("SCIEC625_CLIENT.dll")] public static extern int atn0(); // Сброс командного режима В классе frmCOP.cs пишу: private void отправка_байта_в _прибор(object sender, EventArgs e) { tbOutput2.Text += "Включение командного режима = "; tbOutput2.Text += SCIEC625_CLIENT.atn1().ToString(); tbOutput2.Text += Environment.NewLine; tbOutput2.Text += "Назначает прибор приёмником при обмене информацией = "; //tbOutput2.Text += SCIEC625_CLIENT.mla().ToString(); tbOutput2.Text += Environment.NewLine; tbOutput2.Text += "Назначение платы источником при определении состояния ="; tbOutput2.Text += SCIEC625_CLIENT.mtac().ToString(); tbOutput2.Text += Environment.NewLine; //tbOutput5.Text += "Сброс командного режима = "; //tbOutput5.Text += SCIEC625_CLIENT.transb().ToString(); //tbOutput5.Text += Environment.NewLine; tbOutput2.Text += "Сброс командного режима = "; tbOutput2.Text += SCIEC625_CLIENT.atn0().ToString(); tbOutput2.Text += Environment.NewLine; } Сразу видно что закоментины: //tbOutput2.Text += SCIEC625_CLIENT.mla().ToString(); //tbOutput5.Text += SCIEC625_CLIENT.transb().ToString(); Скорее всего вопрос маниакально тупой НО в классе SCIEC625_CLIENT.cs mla(byte t); а transb(byte b, uint t); а что с ними (byte t, byte b, uint t) делать в классе frmCOP.cs как то не особо понятно. |