Приложение А: "Hello World!", код на C# (Visual Studio 2015)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HelloWorld
{
public class HelloWorld
{
private string _helloWorldString;
public HelloWorld()
{
_helloWorldString = "Hello World!";
}
public string Message
{
get
{
return _helloWorldString;
}
set
{
_helloWorldString = value;
}
}
public void DisplayMessage()
{
MessageBox.Show(Message);
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HelloWorld
{
public class HelloWorld
{
private string _helloWorldString;
public HelloWorld()
{
_helloWorldString = "Hello World!";
}
public string Message
{
get
{
return _helloWorldString;
}
set
{
_helloWorldString = value;
}
}
public void DisplayMessage()
{
MessageBox.Show(Message);
}
}
}
Приложение Б: "Hello World!", код на cicode (Vijeo Citect 2015)
// ---------------------------------------------------------------------------
// Файл: HelloWorld1.ci
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
// Hello World! примеры для вызова .NET кода из cicode
//
//
// ---------------------------------------------------------------------------
// HelloWorld1
// -----------
//
// Описание: Создаем экземпляра класса HelloWorld, получаем
// свойство Message и, используя cicode функцию Message, отображаем
// его значение в диалоговом окне.
// ---------------------------------------------------------------------------
FUNCTION HelloWorld1()
//Хендл экземпляра класса hello world
OBJECT hHelloWorld;
STRING sMessage;
//Создаем экземпляр класса
hHelloWorld = DllClassCreate(PathToStr("[RUN]:HelloWorld.dll"), "HelloWorld");
//Если экземпляр класса создан успешно...
IF DllClassIsValid(hHelloWorld) = 1 THEN
//Получаем значение свойства Message
sMessage = DllClassGetProperty(hHelloWorld, "Message");
Message("Значение свойства из экземпляра .Net класса", sMessage, 0);
END
//Освобождаем экземпляр класса
DllClassDispose(hHelloWorld);
END
// Файл: HelloWorld1.ci
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
// Hello World! примеры для вызова .NET кода из cicode
//
//
// ---------------------------------------------------------------------------
// HelloWorld1
// -----------
//
// Описание: Создаем экземпляра класса HelloWorld, получаем
// свойство Message и, используя cicode функцию Message, отображаем
// его значение в диалоговом окне.
// ---------------------------------------------------------------------------
FUNCTION HelloWorld1()
//Хендл экземпляра класса hello world
OBJECT hHelloWorld;
STRING sMessage;
//Создаем экземпляр класса
hHelloWorld = DllClassCreate(PathToStr("[RUN]:HelloWorld.dll"), "HelloWorld");
//Если экземпляр класса создан успешно...
IF DllClassIsValid(hHelloWorld) = 1 THEN
//Получаем значение свойства Message
sMessage = DllClassGetProperty(hHelloWorld, "Message");
Message("Значение свойства из экземпляра .Net класса", sMessage, 0);
END
//Освобождаем экземпляр класса
DllClassDispose(hHelloWorld);
END
// ---------------------------------------------------------------------------
// Файл: HelloWorld2.ci
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
// Hello World! примеры для вызова .NET кода из cicode
//
//
// ---------------------------------------------------------------------------
// HelloWorld2
// -----------
//
// Описание: Создаем экземпляр класса HelloWorld, присваиваем значение
// свойству Message и затем вызываем метод DisplayMessage
// для отображения сообщения в диалоговом окне.
// ---------------------------------------------------------------------------
FUNCTION HelloWorld2()
//Хендл экземпляра класса hello world
OBJECT hHelloWorld;
STRING sMessage = "Hello World !!!!!";
//Создаем экземпляр класса
hHelloWorld = DllClassCreate(PathToStr("[RUN]:HelloWorld.dll"), "HelloWorld");
//Если экземпляр класса создан успешно...
IF DllClassIsValid(hHelloWorld) = 1 THEN
//Присваиваем значение свойству Мessage...
DllClassSetProperty(hHelloWorld, "Message", sMessage);
//и отображаем это значение через вызов метода DisplayMessage
DllClassCallMethod(hHelloWorld, "DisplayMessage");
END
//Освобождаем экземпляр класса
DllClassDispose(hHelloWorld)
END
// Файл: HelloWorld2.ci
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
// Hello World! примеры для вызова .NET кода из cicode
//
//
// ---------------------------------------------------------------------------
// HelloWorld2
// -----------
//
// Описание: Создаем экземпляр класса HelloWorld, присваиваем значение
// свойству Message и затем вызываем метод DisplayMessage
// для отображения сообщения в диалоговом окне.
// ---------------------------------------------------------------------------
FUNCTION HelloWorld2()
//Хендл экземпляра класса hello world
OBJECT hHelloWorld;
STRING sMessage = "Hello World !!!!!";
//Создаем экземпляр класса
hHelloWorld = DllClassCreate(PathToStr("[RUN]:HelloWorld.dll"), "HelloWorld");
//Если экземпляр класса создан успешно...
IF DllClassIsValid(hHelloWorld) = 1 THEN
//Присваиваем значение свойству Мessage...
DllClassSetProperty(hHelloWorld, "Message", sMessage);
//и отображаем это значение через вызов метода DisplayMessage
DllClassCallMethod(hHelloWorld, "DisplayMessage");
END
//Освобождаем экземпляр класса
DllClassDispose(hHelloWorld)
END
Приложение В: ProcessEventQue(), код на cicode (Vijeo Citect 2015)
FUNCTION ProcessEventQueue()
INT hQueue;
INT iRecord;
STRING sAlarmFmt;
STRING sRemaining;
STRING sAlarmName;
STRING sTime;
INT iCategory;
STRING sState;
INT iSendCategory = 2;
INT iQueStatus;
INT iQueLength;
STRING sPaging;
STRING sPagingGroup;
WHILE 1 DO
hQueue= QueOpen("EventQue", 0);
Sleep(1);
IF hQueue<> -1 THEN
iQueLength = QueLength(hQueue);
IF iQueLength > 0 THEN
iQueStatus = 0;
WHILE iQueStatus = 0 DO
iQueStatus = QueRead(hQueue, iRecord, sAlarmFmt, 1);
//в sAlarmFmt будет возвращаться строка в формате указанном
//в параметре [Alarm]EventQueFmt
//В этом примере это это будет быглядеть
//{заполните это позже когда будете отлаживать эту функцию}
IF sAlarmFmt <> "" THEN
sAlarmName = StrLeft(sAlarmFmt, StrSearch(0, sAlarmFmt, ","));
sRemaining = StrRight(sAlarmFmt, StrLength(sAlarmFmt) - StrSearch(0, sAlarmFmt ,",") - 1);
sTime= StrLeft(sRemaining, StrSearch(0, sRemaining, ","));
sRemaining = StrRight(sRemaining, StrLength(sRemaining ) - StrSearch(0, sRemaining, ",") - 1);
iCategory = StrToInt(StrLeft(sRemaining, StrSearch(0, sRemaining, ",")));
sRemaining = StrRight(sRemaining, StrLength(sRemaining) - StrSearch(0, sRemaining, ",") - 1);
sState = StrLeft(sRemaining, StrSearch(0, sRemaining, ","));
sRemaining = StrRight(sRemaining, StrLength(sRemaining) - StrSearch(0, sRemaining, ",") - 1);
sPaging = StrLeft(sRemaining, StrSearch(0, sRemaining, ","));
sPagingGroup = StrRight(sRemaining, StrLength(sRemaining) - StrSearch(0, sRemaining, ",") - 1);
IF ((sPaging = "TRUE") AND (iCategory = 2) AND (sState = "ON")) THEN
SendEmail("forum(AT)proasutp.com", sAlarmName, "TIME: " + sTime + " STATE:" + sState);
END
END
END
END
END
END
END
INT hQueue;
INT iRecord;
STRING sAlarmFmt;
STRING sRemaining;
STRING sAlarmName;
STRING sTime;
INT iCategory;
STRING sState;
INT iSendCategory = 2;
INT iQueStatus;
INT iQueLength;
STRING sPaging;
STRING sPagingGroup;
WHILE 1 DO
hQueue= QueOpen("EventQue", 0);
Sleep(1);
IF hQueue<> -1 THEN
iQueLength = QueLength(hQueue);
IF iQueLength > 0 THEN
iQueStatus = 0;
WHILE iQueStatus = 0 DO
iQueStatus = QueRead(hQueue, iRecord, sAlarmFmt, 1);
//в sAlarmFmt будет возвращаться строка в формате указанном
//в параметре [Alarm]EventQueFmt
//В этом примере это это будет быглядеть
//{заполните это позже когда будете отлаживать эту функцию}
IF sAlarmFmt <> "" THEN
sAlarmName = StrLeft(sAlarmFmt, StrSearch(0, sAlarmFmt, ","));
sRemaining = StrRight(sAlarmFmt, StrLength(sAlarmFmt) - StrSearch(0, sAlarmFmt ,",") - 1);
sTime= StrLeft(sRemaining, StrSearch(0, sRemaining, ","));
sRemaining = StrRight(sRemaining, StrLength(sRemaining ) - StrSearch(0, sRemaining, ",") - 1);
iCategory = StrToInt(StrLeft(sRemaining, StrSearch(0, sRemaining, ",")));
sRemaining = StrRight(sRemaining, StrLength(sRemaining) - StrSearch(0, sRemaining, ",") - 1);
sState = StrLeft(sRemaining, StrSearch(0, sRemaining, ","));
sRemaining = StrRight(sRemaining, StrLength(sRemaining) - StrSearch(0, sRemaining, ",") - 1);
sPaging = StrLeft(sRemaining, StrSearch(0, sRemaining, ","));
sPagingGroup = StrRight(sRemaining, StrLength(sRemaining) - StrSearch(0, sRemaining, ",") - 1);
IF ((sPaging = "TRUE") AND (iCategory = 2) AND (sState = "ON")) THEN
SendEmail("forum(AT)proasutp.com", sAlarmName, "TIME: " + sTime + " STATE:" + sState);
END
END
END
END
END
END
END