当我想在CR1000中锁定编程时,最终用户想更改DataInterval和Scan中的一些参数。 _Campbellsci论坛问答

尊敬的各位:,

我正在安装EKO仪器和CR1000之间的监测系统辐射连接。

当我想在CR1000中锁定编程时,最终用户想更改DataInterval和Scan中的一些参数。
_Campbellsci论坛问答

这个程序很长很复杂,所以我想用安全代码锁定程序,但最终用户想在使用过程中更改DataInterval和Scan in中的一些参数

所以,请给我一些评论,我可以做到。

谢谢并致以最诚挚的问候,
阮文雄
总工程师
测控设备有限公司
地址:越南河内市河东区富林镇Huyen Ky 847号
手机:+84 904 251 826
直拨电话:+84-4-33534933
传真:+84-4-33534933
电子邮件:nvhung.mctt@gmail.com

新对话如下:

最近的操作系统具有FileEncrypt功能。还有Include指令。

您希望用户能够访问的程序部分可以放在主程序中。您的专有代码可以通过主程序中的Include进行加密和引用。

这将允许您保护您的代码,同时允许您的用户访问程序的其他部分。

在操作系统16中添加了FileEncrypt。已在操作系统11中添加Include。我们刚刚发布了操作系统17。操作系统和支持的CRBasic文件可从我们的网站下载。有关FileEncrypt和Include的信息,请参阅CRBasic的帮助文件。请注意,当前必须在数据记录器上对文件进行加密。CRBasic编辑器的下一个版本将允许您加密电脑上的文件。

希望这能有所帮助,

Dana公司

新对话如下:

CR1000的用户界面是什么?CR1000KD或LoggerNet或?

除了Include和FileEncrypt指令外,还可以查看ConstTable/EndConstTable。从帮助: ConstTable/EndConstTable指令用于声明一个或多个常量,这些常量可以在终端模式下使用键盘显示器或数据记录器的C命令进行更改。然后使用新的值重新编译程序。

程序Scan和DataInterval是常量。

请记住,重新编译程序时,您将丢失存储的数据。 总是先收集数据, 在进行任何更改之前。

当做
珍妮特

新对话如下:

谢谢

我们的客户拥有与数据记录器接口的所有工具,包括PC400、Loggnet、KD1000,现在,我想与Loggnet一起使用,但将来在其他项目中,当客户不购买软件版权时,我该怎么做?。

顺致敬意,
阮文雄

新对话如下:

尊敬的Dana:,

在将文件发送到记录器时,哪个版本的CRBasic编辑器将支持加密文件,何时发布?我们会对这个功能感到非常高兴!

我们的程序使用“;包括“;明确安排我们代码的说明。
但是,如果我想加密文件,我必须重新排列所有的代码,因为这些文件被分为包括常量和变量的文件和包含子例程的文件——这样很难重新排列,所有(!)文件都将被加密。

我们的最后一个问题是,我们加密了所有文件,但在重新启动后,出现了编译错误:似乎加密的文件不能在加密指令之前包含。。。

我们对加密功能感到非常满意,但在现有程序中使用它很难吗!
特别是如果程序很大并且以前没有被认为是加密的。。。

顺致敬意,

约翰内斯

*最后更新者:JBecker于2009年9月7日凌晨3:45*

新对话如下:

CRBasic编辑器的3.1版将支持“;保存“加密”;选项计划在年底前的某个时候与LoggerNet 4.0一起发布(除非出现任何不可预见的障碍!)

我们的最后一个问题是,我们加密了所有文件,但在重新启动后,出现了编译错误:似乎加密的文件不能在加密指令之前包含。。。

你能给我一个大致的计划大纲吗?例如,

“变量已定义”;

“定义了数据表”;

Include Encrypted1'包含包含子例程的文件

'更多声明

开始进度
Include Encrypted2'包含文件包含专有代码
结束程序


我想更好地了解什么场景会产生编译器错误。如果你能提供一个大致的轮廓,那会有所帮助。

当做

Dana公司

新对话如下:

...
它是这样的:

*********************************

(1) 包括“;常量变量
(2) 包括“;关于调制解调器的子程序“;
(3) 包括“;显示和数据文件“;
(4) 包括“;其他常数“;
(5) 包括“;用于编写协议文件“”的子程序;

子程式

开始进度
文件加密((1))
...
文件加密((5))
文件加密(ThisFile)

扫描
慢速序列
慢速序列
结束程序
*************************************

上面的结构正在工作,但只有一次:-)
只有当我们上传所有文件并启动程序时。
在我们重新启动数据记录器之后,会出现类似“&&"&教派&教派;)$不是有效的表达式”;。我认为这是因为程序在知道它们被加密之前就读取了(加密的)Include文件。。。


一个问题是,我们不能以不同的顺序包括文件,因为例如,(5)中的子例程需要文件(4)和(1)中的常量。
主Prog调用(5)中的子例程。如果我将在“;开始程序“;编译器错误为“0”;在执行块中声明的子程序“;。。。
最简单的步骤是分离显示(可以在Begin/EndProg中定义)和数据表。其他步骤会带来更多的麻烦。

约翰内斯

新对话如下:

上面的结构正在工作,但只有一次:-)

啊。。。我理解。它可能因为试图加密加密的文件而窒息。我会进一步研究。如果是这样的话,也许我们可以在未来版本的操作系统中做一些事情(由于我们刚刚发布了CR1000的OS17,任何后续版本都可能需要一段时间)。

一个问题是,我们不能以不同的顺序包括文件,因为例如,(5)中的子例程需要文件(4)和(1)中的常量。

子例程、变量、数据表等都必须在使用之前进行定义。这是编程语言中的标准,我不知道我们能做些什么来解决它。

问候,Dana

新对话如下:

我可以补充一个关于文件加密的建议和更多的解释吗。

建议首先查看ConstTable选项,该选项允许您定义用户可编辑常量的列表,用户可以编辑这些常量并强制重新编译程序,而无需了解程序。程序本身可以使用普通的密码技术或加密进行保护。这需要最终用户最少的知识,并且就他们不破坏程序而言是最安全的。

谈到文件加密,我认为对于程序指令fileencrypt的作用有点困惑。它并不是真正打算包含在正常运行的程序中。它仅用于让记录器加密已存储在记录器内存中的另一个程序(或包含文件)。为此,您只需要一个运行一次的小程序,该程序只需调用fileencrypt即可将另一个程序(或包含文件)转换为加密形式

一旦文件被加密,它们就可以被发送到另一个记录器中加载。

同时,使用最新的操作系统(OS17),您可以拥有加密或未加密的include文件。因此,要执行此应用程序中所需的操作,您可以拥有一个未加密的常量包含文件,以便最终用户可以对其进行编辑以更改他/你想要的常量,同时对主程序和其他包含文件进行加密以保护任何专有代码和算法。

新对话如下:

回复:第二次运行程序时出错。。。您正在使用什么操作系统?我用下面的代码测试了OS 16和17(我认为这与上面的代码类似),它编译得很好,好几次。尝试加密一个已经加密的文件,或者包括一个加密的文件与未加密的文件都没有问题。


包括“;CPU:Encrypt_Vars.cr1”;
包括“;CPU:Encrypt_Subs.cr1“;
包括“;CPU:Encrypt_DataTables.cr1”;
包括“;CPU:Encrypt_Const.cr1”;

开始进度
扫描(1,秒,3.0)
包括“;CPU:Encrypt_measure.cr1”)
文件加密(“CPU:Encrypt_Vars.cr1”)
文件加密(“CPU:Encrypt_Subs.cr1”)
文件加密(“CPU:Encrypt_DataTables.cr1”)
文件加密(“CPU:Encrypt_Const.cr1”)
文件加密(“CPU:Encrypt_measure.cr”)
FileEncrypt(“CPU:FileEncrypt includetest-main.cr1”)
调用TempConvert
调用表
下一次扫描

结束程序

如果你愿意,你可以把你的程序离线发给我,我会看一看---dana@campbellsci.com
此外,如果你能够将程序精简到导致错误的部分,那将很有帮助(所以我不会费力地阅读很多代码)。

问候,Dana

新对话如下:

糟糕,测试仪错误。我说得太早了。

我意识到我每次都是通过LoggerNet发送主程序来启动的。如果主程序文件已经加密并运行(例如,使用“文件控制”停止/启动或对数据记录器进行电源循环),则在编译过程中会出现错误。如果重新发送未加密的文件,则一切正常。我将对此进行进一步研究,看看这是否是有意的行为。

同时,解决方法是不加密调用/加密所有其他文件的主文件。

Dana公司

新对话如下:

现在,我想和Loggnet一起使用,但将来在其他项目中,当客户不购买软件版权时,我该怎么做?。

正如Janet所提到的,常数表可以使用键盘显示器或终端模式的“”来访问;C”表示;命令PC200W可以从我们的网站下载,它有一个终端模拟器。您连接到数据记录器,打开终端模拟器,按回车键几次即可获得“;注意“;的值,然后键入C并按照提示更改您想要的值。

保存更改后,程序将重新编译,正如Janet所指出的,您应该首先收集任何数据。

当做
Dana公司

新对话如下:

尊敬的各位:,

我旅行回来了,知道你讨论我的问题非常令人兴奋,我问过你。

然而,你仍然没有专注于我的问题。

我想在为程序设置安全代码时,在使用期间使用Loggnet更改DataInterval和Scan函数中的值时间。

请尽可能向我展示详细信息,或者给我发一个关于我问你的问题的演示示例。

我期待着收到你的来信。

谢谢并致以最诚挚的问候,
阮文雄

新对话如下:

看看关于使用常数表的帖子。更改数据间隔或扫描需要重新编译程序。如果您在记录器中设置了安全性,则需要输入代码来进行这些更改。

如果这不能解决您的问题,请再次发布。

当做
珍妮特

新对话如下:

尊敬的Janet:,

这是一个基本的exmaple。但我并不成功。

请下载两个文件附件。

我已经使用了终端模拟器;C”表示;命令

但我已经看到了在CR8程序中可以更改常量值的地方

我给你寄了两份文件(forum@campbellsci.com).

顺致敬意,
阮文雄

*最后更新者:MCTT于2009年7月29日上午8:51*

新对话如下:

您在CR800中运行的操作系统是什么?

尝试此程序:
'声明公共变量
公共PTemp,电池电压
构造表
Const扫描速率=1
Const数据间隔速率=15
结束构造表

'定义数据表
数据表(测试,11000)
数据间隔(0,数据间隔速率,秒,10)
最小值(1,batt_volt,FP2,0,False)
样品(1,PTemp,FP2)
床头柜

'主程序
开始进度
扫描(扫描速率,秒,0,0)
面板温度(PTemp,250)
蓄电池(蓄电池电压)
调用表测试
下一次扫描
结束程序

这是终端模拟器中的样子:

CR1000>;C

常数表:
1) 扫描速率=1
2) 数据间隔速率=15
选择要更改的常量:1
扫描速率=1
输入扫描速率的新值:2

常数表:
1) 扫描速率=2
2) 数据间隔速率=15
Y) 保存更改并重新编译?
选择要更改的常量,或输入Y(是)保存更改并重新启动程序:Y


我认为论坛没有电子邮件地址。如果您需要发送附件,可以将其发送到 支持 在campbellsci网站上。

让我们知道进展如何。
珍妮特

新对话如下:

尊敬的Janet

非常感谢您的支持。

我已经下载了新的操作系统。我对你的指南很满意。

我将使用FileEncrypt这个完整的应用程序。

顺致敬意,
阮文雄

分享到:

原文链接:,转发请注明来源!
海洋仪器网 仪器使用 当我想在CR1000中锁定编程时,最终用户想更改DataInterval和Scan中的一些参数。 _Campbellsci论坛问答
「当我想在CR1000中锁定编程时,最终用户想更改DataInterval和Scan中的一些参数。 _Campbellsci论坛问答」评论列表

发表评论