manager cron 完善

This commit is contained in:
fumiama
2021-10-28 11:40:30 +08:00
parent 6f4c40f450
commit c0327fe733
12 changed files with 509 additions and 737 deletions

View File

@@ -4,6 +4,7 @@ import (
"fmt"
io "io"
"os"
"time"
"github.com/FloatTech/ZeroBot-Plugin/utils/file"
)
@@ -50,15 +51,17 @@ func main() {
if loadTimers(os.Args[1]) {
timersmapnew.Timers = make(map[string]*Timer)
for s, t := range timersmap.Timers {
timersmapnew.Timers[s] = &Timer{
Enable: t.Enable,
Alert: t.Alert,
Url: t.Url,
Month: t.Month,
Day: t.Day,
Hour: t.Hour,
Minute: t.Minute,
tm := &Timer{
Alert: t.Alert,
Url: t.Url,
}
tm.SetMonth(time.Month(t.Month))
tm.SetDay(int(t.Day))
tm.SetHour(int(t.Hour))
tm.SetMinute(int(t.Minute))
tm.SetWeek(time.Weekday(t.Week))
tm.SetEn(t.Enable)
timersmapnew.Timers[s] = tm
}
saveTimers(os.Args[2])
}

View File

@@ -21,19 +21,14 @@ var _ = math.Inf
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type Timer struct {
Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"`
Alert string `protobuf:"bytes,2,opt,name=alert,proto3" json:"alert,omitempty"`
Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"`
Month int32 `protobuf:"varint,8,opt,name=month,proto3" json:"month,omitempty"`
Day int32 `protobuf:"varint,16,opt,name=day,proto3" json:"day,omitempty"`
Week int32 `protobuf:"varint,32,opt,name=week,proto3" json:"week,omitempty"`
Hour int32 `protobuf:"varint,64,opt,name=hour,proto3" json:"hour,omitempty"`
Minute int32 `protobuf:"varint,128,opt,name=minute,proto3" json:"minute,omitempty"`
Selfid int64 `protobuf:"varint,129,opt,name=selfid,proto3" json:"selfid,omitempty"`
Cron string `protobuf:"bytes,130,opt,name=cron,proto3" json:"cron,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Alert string `protobuf:"bytes,1,opt,name=alert,proto3" json:"alert,omitempty"`
Cron string `protobuf:"bytes,2,opt,name=cron,proto3" json:"cron,omitempty"`
En1Month4Day5Week3Hour5Min6 int32 `protobuf:"varint,4,opt,name=en1month4day5week3hour5min6,proto3" json:"en1month4day5week3hour5min6,omitempty"`
Selfid int64 `protobuf:"varint,8,opt,name=selfid,proto3" json:"selfid,omitempty"`
Url string `protobuf:"bytes,16,opt,name=url,proto3" json:"url,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Timer) Reset() { *m = Timer{} }
@@ -69,13 +64,6 @@ func (m *Timer) XXX_DiscardUnknown() {
var xxx_messageInfo_Timer proto.InternalMessageInfo
func (m *Timer) GetEnable() bool {
if m != nil {
return m.Enable
}
return false
}
func (m *Timer) GetAlert() string {
if m != nil {
return m.Alert
@@ -83,44 +71,16 @@ func (m *Timer) GetAlert() string {
return ""
}
func (m *Timer) GetUrl() string {
func (m *Timer) GetCron() string {
if m != nil {
return m.Url
return m.Cron
}
return ""
}
func (m *Timer) GetMonth() int32 {
func (m *Timer) GetEn1Month4Day5Week3Hour5Min6() int32 {
if m != nil {
return m.Month
}
return 0
}
func (m *Timer) GetDay() int32 {
if m != nil {
return m.Day
}
return 0
}
func (m *Timer) GetWeek() int32 {
if m != nil {
return m.Week
}
return 0
}
func (m *Timer) GetHour() int32 {
if m != nil {
return m.Hour
}
return 0
}
func (m *Timer) GetMinute() int32 {
if m != nil {
return m.Minute
return m.En1Month4Day5Week3Hour5Min6
}
return 0
}
@@ -132,9 +92,9 @@ func (m *Timer) GetSelfid() int64 {
return 0
}
func (m *Timer) GetCron() string {
func (m *Timer) GetUrl() string {
if m != nil {
return m.Cron
return m.Url
}
return ""
}
@@ -195,26 +155,23 @@ func init() {
func init() { proto.RegisterFile("timer.proto", fileDescriptor_ad0307ee16b652d2) }
var fileDescriptor_ad0307ee16b652d2 = []byte{
// 293 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x91, 0xcf, 0x4a, 0xc3, 0x40,
0x10, 0xc6, 0x9d, 0xb6, 0x09, 0xed, 0xc4, 0x43, 0x58, 0x45, 0x07, 0x91, 0x10, 0x72, 0xca, 0xa9,
0x87, 0xea, 0x41, 0x3c, 0x89, 0x20, 0x9e, 0xbc, 0x2c, 0xbe, 0x40, 0x6a, 0x57, 0x1a, 0x9a, 0x3f,
0x65, 0xb3, 0x51, 0x72, 0x53, 0x8f, 0x3e, 0x81, 0x8f, 0xe4, 0xd1, 0x27, 0x10, 0x89, 0x2f, 0x22,
0x3b, 0x1b, 0xa4, 0xb7, 0xef, 0xf7, 0x9b, 0x8f, 0x24, 0x33, 0xc1, 0xc0, 0xe4, 0xa5, 0xd2, 0xf3,
0xad, 0xae, 0x4d, 0x2d, 0x3c, 0x86, 0xe4, 0x1b, 0xd0, 0xbb, 0xb7, 0x49, 0x1c, 0xa1, 0xaf, 0xaa,
0x6c, 0x59, 0x28, 0x82, 0x18, 0xd2, 0xa9, 0x1c, 0x48, 0x1c, 0xa2, 0x97, 0x15, 0x4a, 0x1b, 0x1a,
0xc5, 0x90, 0xce, 0xa4, 0x03, 0x11, 0xe2, 0xb8, 0xd5, 0x05, 0x4d, 0xd8, 0xd9, 0x68, 0x7b, 0x65,
0x5d, 0x99, 0x35, 0x4d, 0x63, 0x48, 0x3d, 0xe9, 0xc0, 0xf6, 0x56, 0x59, 0x47, 0x21, 0x3b, 0x1b,
0x85, 0xc0, 0xc9, 0xb3, 0x52, 0x1b, 0x8a, 0x59, 0x71, 0xb6, 0x6e, 0x5d, 0xb7, 0x9a, 0xae, 0x9c,
0xb3, 0x59, 0x1c, 0xa3, 0x5f, 0xe6, 0x55, 0x6b, 0x14, 0xbd, 0x00, 0xeb, 0x01, 0xed, 0xa0, 0x51,
0xc5, 0x63, 0xbe, 0xa2, 0x57, 0x3b, 0x18, 0xcb, 0x01, 0xc5, 0x01, 0x4e, 0x1e, 0x74, 0x5d, 0xd1,
0x1b, 0xf0, 0x57, 0x31, 0x24, 0xef, 0x80, 0x33, 0x5e, 0xb0, 0xb9, 0xcb, 0xb6, 0xe2, 0x1c, 0x7d,
0xde, 0xbb, 0x21, 0x88, 0xc7, 0x69, 0xb0, 0x38, 0x9d, 0xbb, 0x9b, 0xfc, 0x37, 0x86, 0x74, 0x53,
0x19, 0xdd, 0xc9, 0xa1, 0x7b, 0x72, 0x8b, 0xc1, 0x8e, 0xb6, 0x3b, 0x6d, 0x54, 0x47, 0xee, 0x2d,
0x36, 0x8a, 0x04, 0xbd, 0xa7, 0xac, 0x68, 0x15, 0xdf, 0x28, 0x58, 0xec, 0xef, 0x3e, 0x55, 0xba,
0xd1, 0xe5, 0xe8, 0x02, 0xae, 0xc3, 0xcf, 0x3e, 0x82, 0xaf, 0x3e, 0x82, 0x9f, 0x3e, 0x82, 0x8f,
0xdf, 0x68, 0x6f, 0xe9, 0xf3, 0xdf, 0x38, 0xfb, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x04, 0x03, 0x99,
0x28, 0x9c, 0x01, 0x00, 0x00,
// 256 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2e, 0xc9, 0xcc, 0x4d,
0x2d, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x05, 0x73, 0x94, 0xe6, 0x32, 0x72, 0xb1,
0x86, 0x80, 0x58, 0x42, 0x22, 0x5c, 0xac, 0x89, 0x39, 0xa9, 0x45, 0x25, 0x12, 0x8c, 0x0a, 0x8c,
0x1a, 0x9c, 0x41, 0x10, 0x8e, 0x90, 0x10, 0x17, 0x4b, 0x72, 0x51, 0x7e, 0x9e, 0x04, 0x13, 0x58,
0x10, 0xcc, 0x16, 0x72, 0xe0, 0x92, 0x4e, 0xcd, 0x33, 0xcc, 0xcd, 0xcf, 0x2b, 0xc9, 0x30, 0x49,
0x49, 0xac, 0x34, 0x2d, 0x4f, 0x4d, 0xcd, 0x36, 0xce, 0xc8, 0x2f, 0x2d, 0x32, 0xcd, 0xcd, 0xcc,
0x33, 0x93, 0x60, 0x51, 0x60, 0xd4, 0x60, 0x0d, 0xc2, 0xa7, 0x44, 0x48, 0x8c, 0x8b, 0xad, 0x38,
0x35, 0x27, 0x2d, 0x33, 0x45, 0x82, 0x43, 0x81, 0x51, 0x83, 0x39, 0x08, 0xca, 0x13, 0x12, 0xe0,
0x62, 0x2e, 0x2d, 0xca, 0x91, 0x10, 0x00, 0x5b, 0x06, 0x62, 0x2a, 0x75, 0x31, 0x72, 0x71, 0x82,
0xdd, 0x57, 0xec, 0x9b, 0x58, 0x20, 0x64, 0xc2, 0xc5, 0x06, 0x76, 0x76, 0xb1, 0x04, 0xa3, 0x02,
0xb3, 0x06, 0xb7, 0x91, 0x8c, 0x1e, 0xc4, 0x4b, 0x70, 0x15, 0x50, 0x96, 0x6b, 0x5e, 0x49, 0x51,
0x65, 0x10, 0x54, 0xad, 0x94, 0x3b, 0x17, 0x37, 0x92, 0x30, 0xc8, 0x92, 0xec, 0xd4, 0x4a, 0xa8,
0x37, 0x41, 0x4c, 0x21, 0x25, 0x2e, 0xd6, 0xb2, 0xc4, 0x9c, 0xd2, 0x54, 0xb0, 0x2f, 0xb9, 0x8d,
0x78, 0x90, 0x4d, 0x0d, 0x82, 0x48, 0x59, 0x31, 0x59, 0x30, 0x3a, 0x09, 0x9c, 0x78, 0x24, 0xc7,
0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x33, 0x1e, 0xcb, 0x31, 0x24, 0xb1, 0x81,
0x03, 0xd3, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xf5, 0xc1, 0x9e, 0x44, 0x5b, 0x01, 0x00, 0x00,
}
func (m *Timer) Marshal() (dAtA []byte, err error) {
@@ -241,78 +198,38 @@ func (m *Timer) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if len(m.Cron) > 0 {
i -= len(m.Cron)
copy(dAtA[i:], m.Cron)
i = encodeVarintTimer(dAtA, i, uint64(len(m.Cron)))
i--
dAtA[i] = 0x8
i--
dAtA[i] = 0x92
}
if m.Selfid != 0 {
i = encodeVarintTimer(dAtA, i, uint64(m.Selfid))
i--
dAtA[i] = 0x8
i--
dAtA[i] = 0x88
}
if m.Minute != 0 {
i = encodeVarintTimer(dAtA, i, uint64(m.Minute))
i--
dAtA[i] = 0x8
i--
dAtA[i] = 0x80
}
if m.Hour != 0 {
i = encodeVarintTimer(dAtA, i, uint64(m.Hour))
i--
dAtA[i] = 0x4
i--
dAtA[i] = 0x80
}
if m.Week != 0 {
i = encodeVarintTimer(dAtA, i, uint64(m.Week))
i--
dAtA[i] = 0x2
i--
dAtA[i] = 0x80
}
if m.Day != 0 {
i = encodeVarintTimer(dAtA, i, uint64(m.Day))
i--
dAtA[i] = 0x1
i--
dAtA[i] = 0x80
}
if m.Month != 0 {
i = encodeVarintTimer(dAtA, i, uint64(m.Month))
i--
dAtA[i] = 0x40
}
if len(m.Url) > 0 {
i -= len(m.Url)
copy(dAtA[i:], m.Url)
i = encodeVarintTimer(dAtA, i, uint64(len(m.Url)))
i--
dAtA[i] = 0x22
dAtA[i] = 0x1
i--
dAtA[i] = 0x82
}
if m.Selfid != 0 {
i = encodeVarintTimer(dAtA, i, uint64(m.Selfid))
i--
dAtA[i] = 0x40
}
if m.En1Month4Day5Week3Hour5Min6 != 0 {
i = encodeVarintTimer(dAtA, i, uint64(m.En1Month4Day5Week3Hour5Min6))
i--
dAtA[i] = 0x20
}
if len(m.Cron) > 0 {
i -= len(m.Cron)
copy(dAtA[i:], m.Cron)
i = encodeVarintTimer(dAtA, i, uint64(len(m.Cron)))
i--
dAtA[i] = 0x12
}
if len(m.Alert) > 0 {
i -= len(m.Alert)
copy(dAtA[i:], m.Alert)
i = encodeVarintTimer(dAtA, i, uint64(len(m.Alert)))
i--
dAtA[i] = 0x12
}
if m.Enable {
i--
if m.Enable {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i--
dAtA[i] = 0x8
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
@@ -387,36 +304,21 @@ func (m *Timer) Size() (n int) {
}
var l int
_ = l
if m.Enable {
n += 2
}
l = len(m.Alert)
if l > 0 {
n += 1 + l + sovTimer(uint64(l))
}
l = len(m.Url)
l = len(m.Cron)
if l > 0 {
n += 1 + l + sovTimer(uint64(l))
}
if m.Month != 0 {
n += 1 + sovTimer(uint64(m.Month))
}
if m.Day != 0 {
n += 2 + sovTimer(uint64(m.Day))
}
if m.Week != 0 {
n += 2 + sovTimer(uint64(m.Week))
}
if m.Hour != 0 {
n += 2 + sovTimer(uint64(m.Hour))
}
if m.Minute != 0 {
n += 2 + sovTimer(uint64(m.Minute))
if m.En1Month4Day5Week3Hour5Min6 != 0 {
n += 1 + sovTimer(uint64(m.En1Month4Day5Week3Hour5Min6))
}
if m.Selfid != 0 {
n += 2 + sovTimer(uint64(m.Selfid))
n += 1 + sovTimer(uint64(m.Selfid))
}
l = len(m.Cron)
l = len(m.Url)
if l > 0 {
n += 2 + l + sovTimer(uint64(l))
}
@@ -487,26 +389,6 @@ func (m *Timer) Unmarshal(dAtA []byte) error {
}
switch fieldNum {
case 1:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Enable", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTimer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.Enable = bool(v != 0)
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Alert", wireType)
}
@@ -538,153 +420,7 @@ func (m *Timer) Unmarshal(dAtA []byte) error {
}
m.Alert = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Url", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTimer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthTimer
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthTimer
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Url = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 8:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Month", wireType)
}
m.Month = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTimer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Month |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 16:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Day", wireType)
}
m.Day = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTimer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Day |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 32:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Week", wireType)
}
m.Week = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTimer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Week |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 64:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Hour", wireType)
}
m.Hour = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTimer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Hour |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 128:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Minute", wireType)
}
m.Minute = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTimer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Minute |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 129:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Selfid", wireType)
}
m.Selfid = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTimer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Selfid |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 130:
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Cron", wireType)
}
@@ -716,6 +452,76 @@ func (m *Timer) Unmarshal(dAtA []byte) error {
}
m.Cron = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 4:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field En1Month4Day5Week3Hour5Min6", wireType)
}
m.En1Month4Day5Week3Hour5Min6 = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTimer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.En1Month4Day5Week3Hour5Min6 |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 8:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Selfid", wireType)
}
m.Selfid = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTimer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Selfid |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 16:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Url", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTimer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthTimer
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthTimer
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Url = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTimer(dAtA[iNdEx:])

View File

@@ -0,0 +1,75 @@
package main
import "time"
func (m *Timer) En() (en bool) {
return m.En1Month4Day5Week3Hour5Min6&0x800000 != 0
}
func (m *Timer) Month() (mon time.Month) {
mon = time.Month((m.En1Month4Day5Week3Hour5Min6 & 0x780000) >> 19)
if mon == 0b1111 {
mon = -1
}
return
}
func (m *Timer) Day() (d int) {
d = int((m.En1Month4Day5Week3Hour5Min6 & 0x07c000) >> 14)
if d == 0b11111 {
d = -1
}
return
}
func (m *Timer) Week() (w time.Weekday) {
w = time.Weekday((m.En1Month4Day5Week3Hour5Min6 & 0x003800) >> 11)
if w == 0b111 {
w = -1
}
return
}
func (m *Timer) Hour() (h int) {
h = int((m.En1Month4Day5Week3Hour5Min6 & 0x0007c0) >> 6)
if h == 0b11111 {
h = -1
}
return
}
func (m *Timer) Minute() (min int) {
min = int(m.En1Month4Day5Week3Hour5Min6 & 0x00003f)
if min == 0b111111 {
min = -1
}
return
}
func (m *Timer) SetEn(en bool) {
if en {
m.En1Month4Day5Week3Hour5Min6 |= 0x800000
} else {
m.En1Month4Day5Week3Hour5Min6 &= 0x7fffff
}
}
func (m *Timer) SetMonth(mon time.Month) {
m.En1Month4Day5Week3Hour5Min6 = ((int32(mon) << 19) & 0x780000) | (m.En1Month4Day5Week3Hour5Min6 & 0x87ffff)
}
func (m *Timer) SetDay(d int) {
m.En1Month4Day5Week3Hour5Min6 = ((int32(d) << 14) & 0x07c000) | (m.En1Month4Day5Week3Hour5Min6 & 0xf83fff)
}
func (m *Timer) SetWeek(w time.Weekday) {
m.En1Month4Day5Week3Hour5Min6 = ((int32(w) << 11) & 0x003800) | (m.En1Month4Day5Week3Hour5Min6 & 0xffc7ff)
}
func (m *Timer) SetHour(h int) {
m.En1Month4Day5Week3Hour5Min6 = ((int32(h) << 6) & 0x0007c0) | (m.En1Month4Day5Week3Hour5Min6 & 0xfff83f)
}
func (m *Timer) SetMinute(min int) {
m.En1Month4Day5Week3Hour5Min6 = (int32(min) & 0x00003f) | (m.En1Month4Day5Week3Hour5Min6 & 0xffffc0)
}