Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

using

using
using
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Threading.Tasks;
System.Collections;
System.Timers;

namespace ConsoleApplication9
{
class Program
{
static void Main(string[] args)
{
//create 2 tag
Tag tag1 = new Tag("tempsensor", 100);
Tag tag2 = new Tag("humiditysensor", 200);
// create 1 task
Task task1 = new Task("room1", 500);
//add 2 tag to task1
task1.addtag(tag1);
task1.addtag(tag2);
//create root
Root root = new Root();
// add task
root.addtask(task1);
//runtask
root.runtask("task1");
Console.ReadKey();
}
}
public class Tag
{
public string Name;
public int address;
public string quality;
public DateTime timestamp;
int value;
public Task Parent;
public Tag(string name, int address)
{
Name = name;
this.address = address;
}
public int getvalue()
{
return value;
}
public void setvalue(int value)
{
this.value = value;
}
}
public class Task
{
public string Name;
public uint period;
public ArrayList tags = null;
Timer timer = null;

public Root Parent;


public Task(string name, uint period)
{
Name = name;
this.period = period;
tags = new ArrayList();
}
public void addtag(Tag tag)
{
tag.Parent = this;
tags.Add(tag);
}
public Tag findtag(string nametag)
{
Tag tag = null;
if (tag.Name == nametag)
{
return tag;
}
return null;
}
public void run()
{
timer = new Timer(period);
timer.AutoReset = true;
timer.Elapsed+=new ElapsedEventHandler(updatetag);
timer.Start();
}
public void stop()
{
if (timer != null)
{
timer.Dispose();
}
}
void updatetag(object obj, ElapsedEventArgs e)
{
Tag tag = null;
for (int i = 0; i < tags.Count; i++)
{
tag = (Tag)tags[i];
Random rand=new Random();
int tmp = rand.Next(900,1000);
tag.setvalue(tag.address + tmp);
if (tmp < 920)
tag.quality = "bad";
else
tag.quality="good";
tag.timestamp=DateTime.Now;
}
//display
Console.Clear();
for (int i = 0; i < tags.Count; i++)
{
tag = (Tag)tags[i];
Console.WriteLine("temp =" + tag.getvalue().ToString());
}

}
}
public class Root
{
ArrayList Tasks= new ArrayList();
ArrayList Disps= new ArrayList();
public void addtask(Task task)
{
task.Parent=this;
Tasks.Add(task);
}
public Task findtask(string taskname)
{
Task task=null;
for (int i=0;i<Tasks.Count;i++)
{
task=(Task)Tasks[i];
if(task.Name==taskname )
{
return task;
}
}
return null;
}
public void runtask(string taskname)
{
Task task=null;
task=findtask(taskname);
if(task != null)
{
task.run();
}
}
}
}

You might also like