You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
3.4 KiB
Python
75 lines
3.4 KiB
Python
import peewee
|
|
|
|
proxy = peewee.Proxy()
|
|
|
|
|
|
class communicationModel(peewee.Model):
|
|
class Meta:
|
|
database = proxy
|
|
|
|
|
|
class DevModel(communicationModel):
|
|
id = peewee.AutoField()
|
|
slot = peewee.FixedCharField(max_length=20, index=True, help_text='slot 是设备接口的唯一标识')
|
|
protocol = peewee.FixedCharField(max_length=20, help_text='每种设备必须注册一个 Protocol')
|
|
uri = peewee.CharField(max_length=255, help_text='设备配置')
|
|
description = peewee.CharField(max_length=255, help_text='设备描述')
|
|
enable = peewee.BooleanField(default=True, help_text='启用设备')
|
|
|
|
class Meta:
|
|
table_name = 't_dev'
|
|
|
|
|
|
# class VarModel(communicationModel):
|
|
# id = peewee.AutoField()
|
|
# sig_name = peewee.CharField(max_length=128, index=True, help_text='变量名')
|
|
# sig_type = peewee.FixedCharField(max_length=20, help_text='变量类型')
|
|
# val_type = peewee.FixedCharField(max_length=20, help_text='数值类型')
|
|
# slot = peewee.FixedCharField(max_length=20, index=True, help_text='通信接口, 关联 `t_dev.slot`')
|
|
# uri = peewee.CharField(max_length=40, help_text='变量通信参数')
|
|
# # 单位换算
|
|
# eu = peewee.FixedCharField(max_length=20, help_text='engineering unit')
|
|
# # cv = pw.FixedCharField(max_length=2, help_text='C/V')
|
|
# rlo = peewee.FloatField(null=True, help_text='工程量下限')
|
|
# rhi = peewee.FloatField(null=True, help_text='工程量上限')
|
|
# elo = peewee.FloatField(null=True, help_text='信号量下限')
|
|
# ehi = peewee.FloatField(null=True, help_text='信号量上限')
|
|
# channel = peewee.CharField(max_length=255, help_text='通道')
|
|
# termination = peewee.CharField(max_length=255, help_text='端子')
|
|
# description = peewee.CharField(max_length=255, help_text='变量描述')
|
|
# initial = peewee.CharField(max_length=255, help_text='初始值')
|
|
#
|
|
# class Meta:
|
|
# table_name = 't_var'
|
|
|
|
|
|
class VarModel(communicationModel):
|
|
id = peewee.AutoField()
|
|
sig_name = peewee.CharField(max_length=128, index=True, help_text='变量名')
|
|
sig_type = peewee.FixedCharField(max_length=20, help_text='变量类型')
|
|
chr = peewee.FixedCharField(max_length=20, help_text='数值类型')
|
|
slot = peewee.FixedCharField(max_length=20, index=True, help_text='通信接口, 关联 `t_dev.slot`')
|
|
# 单位换算
|
|
engineering_unit = peewee.FixedCharField(max_length=20, help_text='engineering unit')
|
|
# cv = pw.FixedCharField(max_length=2, help_text='C/V')
|
|
rlo = peewee.FloatField(null=True, help_text='工程量下限')
|
|
rhi = peewee.FloatField(null=True, help_text='工程量上限')
|
|
elo = peewee.FloatField(null=True, help_text='信号量下限')
|
|
ehi = peewee.FloatField(null=True, help_text='信号量上限')
|
|
channel = peewee.CharField(max_length=255, help_text='通道')
|
|
# termination = peewee.CharField(max_length=255, help_text='端子')
|
|
# description = peewee.CharField(max_length=255, help_text='变量描述')
|
|
initial = peewee.CharField(max_length=255, help_text='初始值')
|
|
reg = peewee.IntegerField(null=True, help_text='功能码及地址')
|
|
block = peewee.IntegerField(null=True)
|
|
offset = peewee.IntegerField(null=True)
|
|
bit = peewee.IntegerField(null=True)
|
|
|
|
class Meta:
|
|
table_name = 't_var'
|
|
|
|
|
|
def init_database(database: peewee.Database):
|
|
proxy.initialize(database)
|
|
database.create_tables([DevModel, VarModel], safe=True)
|