假设有一些机器 需要模拟机器的 电压V和电流A
机器在空闲时 电压和电流维持在低位小范围浮动
每台机器随机不定时开始工作 工作时电流和电压在高位 较大范围浮动 工作持续几十秒
工作完后恢复到低位状态
需要持续的一直模拟下去 每秒采集一次电流电压 数据就在控制台输出就可
假设有一些机器 需要模拟机器的 电压V和电流A
机器在空闲时 电压和电流维持在低位小范围浮动
每台机器随机不定时开始工作 工作时电流和电压在高位 较大范围浮动 工作持续几十秒
工作完后恢复到低位状态
需要持续的一直模拟下去 每秒采集一次电流电压 数据就在控制台输出就可
每秒采集随机数据,区间可调,
设备运行或空闲的机制是10-40的随机数是4的倍数就运行,否则空闲,如满意请采纳
//空闲时间低位区间
static int max_low = 20;
static int min_low = 10;
//运行时间高位区间
static int max_high = 40;
static int min_high = 30;
//机器运行持续时间
static int time = 5;
//机器运行开始时间
static boolean runOrStop = false;
//每秒采集一次数据
static int interval = 1;
//从第一秒开始
static int flag = 1;
public static void main(String[] args) {
System.out.println("==========数据采集程序开始==========");
Random random = new Random();
new Timer().schedule(new TimerTask() {
@Override
public void run() {
try {
int ran = random.nextInt(max_high) % (max_high - min_low + 1) + min_low;
if(runOrStop){
int dianliu_high = random.nextInt(max_high) % (max_high - min_high + 1) + min_high;
int dianya_high = random.nextInt(max_high) % (max_high - min_high + 1) + min_high;
System.out.println("当前【运行】状态:第 " + flag + " 秒采集的电流数据=" + dianliu_high + ", 电压数据=" + dianya_high);
interval ++;
if(interval > time){
runOrStop = false;
}
}else{
//假如这个10-40之间的随机数是4的倍数,设备就运行,否则就空闲
if(ran % 4 == 0){
runOrStop = true;
interval ++;
int dianliu_high = random.nextInt(max_high) % (max_high - min_high + 1) + min_high;
int dianya_high = random.nextInt(max_high) % (max_high - min_high + 1) + min_high;
System.out.println("当前【运行】状态:第 " + flag + " 秒采集的电流数据=" + dianliu_high + ", 电压数据=" + dianya_high);
}else{
interval = 1;
runOrStop = false;
int dianliu_low = random.nextInt(max_low) % (max_low - min_low + 1) + min_low;
int dianya_low = random.nextInt(max_low) % (max_low - min_low + 1) + min_low;
System.out.println("当前^空闲^状态:第 " + flag + " 秒采集的电流数据=" + dianliu_low + ", 电压数据=" + dianya_low);
}
}
flag ++;
} catch (Exception e) {
e.printStackTrace();
}
}
},0,1 * 1000);
}