public class Formulas1 : Scripts {
public CnlData CalcCnlData150() { return ToCnlData(ds18b20(28-c6a1359616ff)); }
}
}
Формула в скриптах ds18b20 во входном параметре имеет string который идентифицирует имя файла датчика в папке ScadaComm/Log
Но при этом ошибка сервера выглядит так
Ошибка при компиляции исходного кода скриптов и формул:
(385,63): error CS0103: The name 'c6a1359616ff' does not exist in the current context
а где собственно часть строки «28-» ????
Собственно недоделанная формула, чтобы было понятнее
// Чтение датчиков Dallas ds18b20 из файла, созданного скриптом в crontab
string pathLog = @"/var/log/scada/ScadaComm/Log";
public double ds18b20(string dsID)
{
double res = 0;
string filePath = Path.Combine(pathLog, dsID);
string[] DataDs = File.ReadAllLines(filePath, Encoding.UTF8);
int iOfChar = DataDs[1].IndexOf("t=");
res = Convert.ToDouble(iOfChar);
return res;
}
Пока пытаюсь в расчетный канал просто вынуть индекс из требуемой строки
и данные, которые находятся в файле датчика
9b 01 55 00 7f ff 0c 10 e1 : crc=e1 YES
9b 01 55 00 7f ff 0c 10 e1 t=25687
у формулы всего один параметр — строка, но ошибка указывает только на часть строки, а именно на c6a1359616ff а не на полное имя 28-c6a1359616ff