#include #include "script.h" int readFile() { char s[] = "/home/ctstor/ctfiles/maxvarindex"; //只读打开文件 int fd = open(s, O_RDONLY); if(fd == -1) { printf("error is %s\n", strerror(errno)); return; } printf("sucess fd = %d\n", fd); char buf[100]; memset(buf, 0, sizeof(buf)); int a=3999; //read返回0表示文件读取完毕 while(read(fd, buf, sizeof(buf) - 1) > 0) { printf("%s\n", buf); char * str=buf; printf("%s-----\n", str); sscanf(str,"%d",&a); memset(buf, 0, sizeof(buf)); } printf("%d---===--\n", a); //别忘记关闭 close(fd); return a; } int main() { //初始化 int nMaxIndex= readFile(); if (CreateRam(0,nMaxIndex)<1) return; int i,Number; int StationNumber; static int station[2] = {0,285};//0是电表的第一个变量,285是综保的第一个变量,没有综保不管 static temp1_index =8000; //中间变量 while(1){ Number=(int)GetSysItem(142)-1; StationNumber=(int)GetSysItem(143)-1; if(StationNumber==0) { for (i=0;i<=31;i++)//电表共有31个量 { SetItemValue(0,temp1_index+i,GetItemValue(0,Number*31+i+station[StationNumber])); } //实时曲线 SetSysItem( 78 , Number*31+9+station[StationNumber]);//Pa SetSysItem( 79 , Number*31+10+station[StationNumber]);//Pb SetSysItem( 80 , Number*31+11+station[StationNumber]);//Pc SetSysItem( 81 , Number*31+12+station[StationNumber]);//P //历史曲线 SetSysItem( 94 , Number*31+9+station[StationNumber]);//Pa SetSysItem( 95 , Number*31+10+station[StationNumber]);//Pb SetSysItem( 96 , Number*31+11+station[StationNumber]);//Pc SetSysItem( 97 , Number*31+12+station[StationNumber]);//P } else if(StationNumber==1) { for (i=0;i<116;i++)//综保共有116个量 { SetItemValue(0,temp1_index+i,GetItemValue(0,Number*116+i+station[StationNumber])); } } waitForMillisec(2000); } return 0; }