WiFi rework: protobuf, changed webclient to old hvue fork, runtime WiFi state

This commit is contained in:
MaMe82 2018-09-13 19:49:47 +02:00
parent 4d84224401
commit c95dfaf71c
18 changed files with 390 additions and 272 deletions

View File

@ -79,6 +79,29 @@ func (x WiFiWorkingMode) String() string {
return WiFiWorkingMode_name[int(x)]
}
type WiFiStateMode int
const (
WiFiStateMode_STA_NOT_CONNECTED WiFiStateMode = 0
WiFiStateMode_AP_UP WiFiStateMode = 1
WiFiStateMode_STA_CONNECTED WiFiStateMode = 2
)
var WiFiStateMode_name = map[int]string{
0: "STA_NOT_CONNECTED",
1: "AP_UP",
2: "STA_CONNECTED",
}
var WiFiStateMode_value = map[string]int{
"STA_NOT_CONNECTED": 0,
"AP_UP": 1,
"STA_CONNECTED": 2,
}
func (x WiFiStateMode) String() string {
return WiFiStateMode_name[int(x)]
}
type WiFiAuthMode int
const (
@ -333,27 +356,18 @@ func (m *WiFiSettings) Unmarshal(rawBytes []byte) (*WiFiSettings, error) {
}
type WiFiState struct {
WorkingMode WiFiWorkingMode
AuthMode WiFiAuthMode
Mode WiFiStateMode
Channel uint32
Bss *WiFiBSSCfg
Ssid string
CurrentSettings *WiFiSettings
}
// GetWorkingMode gets the WorkingMode of the WiFiState.
func (m *WiFiState) GetWorkingMode() (x WiFiWorkingMode) {
// GetMode gets the Mode of the WiFiState.
func (m *WiFiState) GetMode() (x WiFiStateMode) {
if m == nil {
return x
}
return m.WorkingMode
}
// GetAuthMode gets the AuthMode of the WiFiState.
func (m *WiFiState) GetAuthMode() (x WiFiAuthMode) {
if m == nil {
return x
}
return m.AuthMode
return m.Mode
}
// GetChannel gets the Channel of the WiFiState.
@ -364,12 +378,12 @@ func (m *WiFiState) GetChannel() (x uint32) {
return m.Channel
}
// GetBss gets the Bss of the WiFiState.
func (m *WiFiState) GetBss() (x *WiFiBSSCfg) {
// GetSsid gets the Ssid of the WiFiState.
func (m *WiFiState) GetSsid() (x string) {
if m == nil {
return x
}
return m.Bss
return m.Ssid
}
// GetCurrentSettings gets the CurrentSettings of the WiFiState.
@ -386,26 +400,20 @@ func (m *WiFiState) MarshalToWriter(writer jspb.Writer) {
return
}
if int(m.WorkingMode) != 0 {
writer.WriteEnum(1, int(m.WorkingMode))
}
if int(m.AuthMode) != 0 {
writer.WriteEnum(2, int(m.AuthMode))
if int(m.Mode) != 0 {
writer.WriteEnum(1, int(m.Mode))
}
if m.Channel != 0 {
writer.WriteUint32(3, m.Channel)
writer.WriteUint32(2, m.Channel)
}
if m.Bss != nil {
writer.WriteMessage(4, func() {
m.Bss.MarshalToWriter(writer)
})
if len(m.Ssid) > 0 {
writer.WriteString(3, m.Ssid)
}
if m.CurrentSettings != nil {
writer.WriteMessage(5, func() {
writer.WriteMessage(4, func() {
m.CurrentSettings.MarshalToWriter(writer)
})
}
@ -429,16 +437,12 @@ func (m *WiFiState) UnmarshalFromReader(reader jspb.Reader) *WiFiState {
switch reader.GetFieldNumber() {
case 1:
m.WorkingMode = WiFiWorkingMode(reader.ReadEnum())
m.Mode = WiFiStateMode(reader.ReadEnum())
case 2:
m.AuthMode = WiFiAuthMode(reader.ReadEnum())
case 3:
m.Channel = reader.ReadUint32()
case 3:
m.Ssid = reader.ReadString()
case 4:
reader.ReadMessage(func() {
m.Bss = m.Bss.UnmarshalFromReader(reader)
})
case 5:
reader.ReadMessage(func() {
m.CurrentSettings = m.CurrentSettings.UnmarshalFromReader(reader)
})

View File

@ -88,6 +88,30 @@ func (x WiFiWorkingMode) String() string {
}
func (WiFiWorkingMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
type WiFiStateMode int32
const (
WiFiStateMode_STA_NOT_CONNECTED WiFiStateMode = 0
WiFiStateMode_AP_UP WiFiStateMode = 1
WiFiStateMode_STA_CONNECTED WiFiStateMode = 2
)
var WiFiStateMode_name = map[int32]string{
0: "STA_NOT_CONNECTED",
1: "AP_UP",
2: "STA_CONNECTED",
}
var WiFiStateMode_value = map[string]int32{
"STA_NOT_CONNECTED": 0,
"AP_UP": 1,
"STA_CONNECTED": 2,
}
func (x WiFiStateMode) String() string {
return proto.EnumName(WiFiStateMode_name, int32(x))
}
func (WiFiStateMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
type WiFiAuthMode int32
const (
@ -107,7 +131,7 @@ var WiFiAuthMode_value = map[string]int32{
func (x WiFiAuthMode) String() string {
return proto.EnumName(WiFiAuthMode_name, int32(x))
}
func (WiFiAuthMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
func (WiFiAuthMode) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
type EthernetInterfaceSettings_Mode int32
@ -228,11 +252,10 @@ func (m *WiFiSettings) GetNexmon() bool {
}
type WiFiState struct {
WorkingMode WiFiWorkingMode `protobuf:"varint,1,opt,name=working_mode,json=workingMode,enum=P4wnP1_grpc.WiFiWorkingMode" json:"working_mode,omitempty"`
AuthMode WiFiAuthMode `protobuf:"varint,2,opt,name=auth_mode,json=authMode,enum=P4wnP1_grpc.WiFiAuthMode" json:"auth_mode,omitempty"`
Channel uint32 `protobuf:"varint,3,opt,name=channel" json:"channel,omitempty"`
Bss *WiFiBSSCfg `protobuf:"bytes,4,opt,name=bss" json:"bss,omitempty"`
CurrentSettings *WiFiSettings `protobuf:"bytes,5,opt,name=currentSettings" json:"currentSettings,omitempty"`
Mode WiFiStateMode `protobuf:"varint,1,opt,name=mode,enum=P4wnP1_grpc.WiFiStateMode" json:"mode,omitempty"`
Channel uint32 `protobuf:"varint,2,opt,name=channel" json:"channel,omitempty"`
Ssid string `protobuf:"bytes,3,opt,name=ssid" json:"ssid,omitempty"`
CurrentSettings *WiFiSettings `protobuf:"bytes,4,opt,name=currentSettings" json:"currentSettings,omitempty"`
}
func (m *WiFiState) Reset() { *m = WiFiState{} }
@ -240,18 +263,11 @@ func (m *WiFiState) String() string { return proto.CompactTextString(
func (*WiFiState) ProtoMessage() {}
func (*WiFiState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
func (m *WiFiState) GetWorkingMode() WiFiWorkingMode {
func (m *WiFiState) GetMode() WiFiStateMode {
if m != nil {
return m.WorkingMode
return m.Mode
}
return WiFiWorkingMode_UNKNOWN
}
func (m *WiFiState) GetAuthMode() WiFiAuthMode {
if m != nil {
return m.AuthMode
}
return WiFiAuthMode_WPA2_PSK
return WiFiStateMode_STA_NOT_CONNECTED
}
func (m *WiFiState) GetChannel() uint32 {
@ -261,11 +277,11 @@ func (m *WiFiState) GetChannel() uint32 {
return 0
}
func (m *WiFiState) GetBss() *WiFiBSSCfg {
func (m *WiFiState) GetSsid() string {
if m != nil {
return m.Bss
return m.Ssid
}
return nil
return ""
}
func (m *WiFiState) GetCurrentSettings() *WiFiSettings {
@ -1285,6 +1301,7 @@ func init() {
proto.RegisterType((*DHCPServerStaticHost)(nil), "P4wnP1_grpc.DHCPServerStaticHost")
proto.RegisterType((*Empty)(nil), "P4wnP1_grpc.Empty")
proto.RegisterEnum("P4wnP1_grpc.WiFiWorkingMode", WiFiWorkingMode_name, WiFiWorkingMode_value)
proto.RegisterEnum("P4wnP1_grpc.WiFiStateMode", WiFiStateMode_name, WiFiStateMode_value)
proto.RegisterEnum("P4wnP1_grpc.WiFiAuthMode", WiFiAuthMode_name, WiFiAuthMode_value)
proto.RegisterEnum("P4wnP1_grpc.EthernetInterfaceSettings_Mode", EthernetInterfaceSettings_Mode_name, EthernetInterfaceSettings_Mode_value)
}
@ -2231,145 +2248,147 @@ var _P4WNP1_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("grpc.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 2227 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0x5b, 0x77, 0xdb, 0xb8,
0xf1, 0xd7, 0xc5, 0x96, 0xa5, 0x91, 0x64, 0x31, 0xd8, 0xc4, 0x61, 0xbc, 0xb9, 0x38, 0xfc, 0x67,
0xf3, 0x77, 0xb3, 0x3d, 0xee, 0x6e, 0xea, 0xb3, 0xdd, 0x93, 0xd3, 0x9e, 0xac, 0xac, 0x8b, 0xa5,
0xc4, 0x92, 0x75, 0x40, 0x3b, 0x3e, 0x6d, 0x1f, 0xb4, 0x34, 0x09, 0xdb, 0xa8, 0x29, 0x92, 0x25,
0x40, 0x25, 0xee, 0xc3, 0x3e, 0xf4, 0xbd, 0x7d, 0xed, 0x27, 0xec, 0xe7, 0x68, 0x0f, 0xc0, 0x8b,
0x28, 0x5a, 0x92, 0xd3, 0xdd, 0x37, 0xcc, 0x60, 0xf0, 0xc3, 0x60, 0x66, 0x30, 0x33, 0x00, 0xc0,
0xa5, 0xef, 0x99, 0x7b, 0x9e, 0xef, 0x72, 0x17, 0x55, 0x47, 0xfb, 0x1f, 0x9d, 0xd1, 0xb7, 0x63,
0xc1, 0xd2, 0xfe, 0x55, 0x84, 0xda, 0x19, 0xed, 0x52, 0x9d, 0x70, 0x4e, 0x9d, 0x4b, 0x86, 0x10,
0xac, 0x39, 0xc6, 0x84, 0xa8, 0xf9, 0x9d, 0xfc, 0x6e, 0x05, 0xcb, 0x31, 0xda, 0x86, 0xb2, 0x45,
0x99, 0x71, 0x6e, 0x13, 0x4b, 0x2d, 0xec, 0xe4, 0x77, 0xcb, 0x38, 0xa1, 0xd1, 0x53, 0x00, 0x9f,
0x5c, 0x06, 0xb6, 0xc1, 0x5d, 0xff, 0x46, 0x2d, 0xca, 0x55, 0x29, 0x0e, 0x7a, 0x0b, 0xb5, 0x8f,
0xae, 0x7f, 0x4d, 0x9d, 0xcb, 0xf1, 0xc4, 0xb5, 0x88, 0xba, 0xb6, 0x93, 0xdf, 0xdd, 0x7c, 0xfd,
0x78, 0x2f, 0xa5, 0xc4, 0x9e, 0x50, 0xe0, 0x2c, 0x14, 0x1a, 0xb8, 0x16, 0xc1, 0xd5, 0x8f, 0x33,
0x02, 0x7d, 0x07, 0x15, 0x23, 0xe0, 0x57, 0xe1, 0xea, 0x75, 0xb9, 0xfa, 0xd1, 0xad, 0xd5, 0xcd,
0x80, 0x5f, 0xc9, 0xa5, 0x65, 0x23, 0x1a, 0x21, 0x15, 0x36, 0xcc, 0x2b, 0xc3, 0x71, 0x88, 0xad,
0x96, 0x76, 0xf2, 0xbb, 0x75, 0x1c, 0x93, 0x68, 0x0f, 0x4a, 0x86, 0x37, 0x3e, 0xd0, 0x75, 0x75,
0x63, 0x27, 0xbf, 0x5b, 0x7d, 0xfd, 0xf0, 0x16, 0xdc, 0x81, 0xae, 0xb7, 0x2e, 0x2e, 0xf1, 0xba,
0xe1, 0x1d, 0xe8, 0x3a, 0x7a, 0x0b, 0x0d, 0xd3, 0xa6, 0xc4, 0xe1, 0x62, 0xcd, 0xd8, 0xa6, 0x8c,
0xab, 0xe5, 0x9d, 0xe2, 0xaa, 0x85, 0xf5, 0x50, 0xfe, 0x40, 0xd7, 0x8f, 0x28, 0xe3, 0xe8, 0x4b,
0xa8, 0x5c, 0x51, 0x8b, 0x8c, 0x19, 0xa3, 0x96, 0x5a, 0x09, 0x0d, 0x28, 0x18, 0x3a, 0xa3, 0x16,
0xda, 0x82, 0x92, 0x43, 0x3e, 0x4d, 0x5c, 0x47, 0xad, 0xcb, 0x99, 0x88, 0xd2, 0xfe, 0x59, 0x80,
0x8a, 0xf4, 0x0c, 0x37, 0x38, 0xb9, 0x65, 0xc6, 0xfc, 0x2f, 0x32, 0x63, 0xe1, 0x67, 0x99, 0xb1,
0x38, 0x6f, 0xc6, 0x5f, 0x41, 0xf1, 0x9c, 0x31, 0xe9, 0xd0, 0x15, 0xa6, 0x10, 0x32, 0xa8, 0x05,
0x0d, 0x33, 0xf0, 0x7d, 0xe2, 0xf0, 0x38, 0xce, 0xa4, 0x27, 0xab, 0x0b, 0x54, 0x88, 0x05, 0x70,
0x76, 0x85, 0xf6, 0x1a, 0x60, 0x86, 0x2b, 0xe2, 0x54, 0xd7, 0xfb, 0xed, 0x38, 0x4e, 0xc5, 0x18,
0x29, 0x50, 0x1c, 0xe9, 0xef, 0xe5, 0xe9, 0x2a, 0x58, 0x0c, 0xb5, 0xe7, 0x50, 0xd7, 0xb9, 0x2f,
0x6c, 0x40, 0x18, 0x33, 0x2e, 0x89, 0x10, 0x99, 0xb0, 0xcb, 0x68, 0x95, 0x18, 0x6a, 0x7b, 0x50,
0xeb, 0x4c, 0x89, 0xc3, 0x31, 0xf9, 0x6b, 0x40, 0x18, 0x17, 0x01, 0x2d, 0x5c, 0x4c, 0x9c, 0x93,
0x1b, 0x2f, 0xb4, 0x73, 0x11, 0xa7, 0x38, 0x9a, 0x01, 0x20, 0xe5, 0x3f, 0x18, 0x76, 0x20, 0xae,
0xc6, 0x06, 0x67, 0x72, 0x87, 0x10, 0xb3, 0x97, 0xc3, 0x31, 0x03, 0x6d, 0xc1, 0x3a, 0x3f, 0x77,
0x5d, 0x3b, 0xbc, 0x33, 0xbd, 0x1c, 0x0e, 0x49, 0xa4, 0x42, 0x89, 0x53, 0x87, 0x7f, 0xb7, 0x2f,
0x2d, 0x5a, 0xec, 0xe5, 0x70, 0x44, 0x1f, 0xac, 0x43, 0x71, 0x6a, 0xd8, 0xda, 0x11, 0xac, 0xcb,
0x2d, 0xc4, 0x21, 0xf9, 0x4c, 0x0b, 0x39, 0x46, 0xbf, 0x81, 0xd2, 0x54, 0x6c, 0xcd, 0xd4, 0xc2,
0x82, 0x20, 0x9c, 0xa9, 0x86, 0x23, 0x31, 0xed, 0x47, 0xb8, 0x7f, 0x42, 0x26, 0x5e, 0x9b, 0xfa,
0xc7, 0x7e, 0x97, 0xda, 0x24, 0x3e, 0xa8, 0x02, 0x45, 0x8b, 0xfa, 0xb1, 0x29, 0x2c, 0xea, 0x8b,
0x50, 0xf4, 0x7c, 0x72, 0x41, 0x3f, 0x45, 0x26, 0x8c, 0x28, 0x61, 0x12, 0xd7, 0xb1, 0x6f, 0xba,
0xae, 0x6d, 0x11, 0x5f, 0x2a, 0x5d, 0xc6, 0x29, 0x8e, 0xf6, 0x3b, 0x78, 0x90, 0xd9, 0x81, 0x79,
0xae, 0xc3, 0x48, 0x98, 0x1c, 0x58, 0x60, 0xf3, 0x91, 0xc1, 0xaf, 0xa2, 0x9d, 0x52, 0x1c, 0xed,
0x18, 0x1a, 0x98, 0x18, 0x56, 0x5a, 0x2b, 0x04, 0x6b, 0xde, 0x4c, 0x58, 0x8e, 0xd1, 0x7d, 0x58,
0x67, 0xdc, 0xf0, 0xb9, 0x54, 0xab, 0x88, 0x43, 0x42, 0x48, 0x5a, 0x06, 0x37, 0xa4, 0x3e, 0x35,
0x2c, 0xc7, 0xda, 0x37, 0xa0, 0xcc, 0x00, 0x23, 0x25, 0x1e, 0x43, 0xc5, 0x27, 0x86, 0xd5, 0x72,
0x03, 0x87, 0x47, 0x96, 0x9c, 0x31, 0xb4, 0x29, 0x28, 0x67, 0x3e, 0xe5, 0xe4, 0x2e, 0x1d, 0xb6,
0x44, 0xd2, 0xf0, 0x88, 0x13, 0x67, 0xc0, 0x88, 0x42, 0x1a, 0xd4, 0x26, 0x01, 0xe3, 0x43, 0x97,
0x77, 0x3e, 0x89, 0xcc, 0x10, 0x5a, 0x67, 0x8e, 0x97, 0x68, 0xba, 0x96, 0xd2, 0xf4, 0x2b, 0x68,
0x88, 0x2d, 0xfb, 0xce, 0x85, 0xbb, 0x62, 0x5b, 0xed, 0x27, 0x50, 0x66, 0x62, 0xd1, 0x81, 0x16,
0xa5, 0x68, 0x04, 0x6b, 0x8c, 0xfe, 0x8d, 0x44, 0x16, 0x92, 0x63, 0xc1, 0x93, 0xb7, 0x3d, 0xbc,
0xb7, 0x72, 0x2c, 0xae, 0xf3, 0xc4, 0xb5, 0x4e, 0xe8, 0x24, 0xcc, 0xc4, 0x45, 0x1c, 0x93, 0xc2,
0xc8, 0x94, 0xb5, 0xa9, 0x2f, 0x6f, 0x66, 0x19, 0x87, 0x84, 0xf6, 0x27, 0x50, 0x7a, 0xfd, 0xb6,
0x6e, 0xfa, 0xd4, 0x4b, 0xdf, 0x10, 0x26, 0x19, 0x69, 0xaf, 0xce, 0x38, 0xe8, 0x25, 0x6c, 0x72,
0x3a, 0x21, 0x6e, 0xc0, 0x75, 0x62, 0xba, 0x8e, 0xc5, 0xa4, 0x56, 0x75, 0x9c, 0xe1, 0x6a, 0x4f,
0xa1, 0x96, 0x60, 0xbf, 0x73, 0xcf, 0xd1, 0x26, 0x14, 0xa8, 0x25, 0xf1, 0xea, 0xb8, 0x40, 0x2d,
0xed, 0x45, 0x6a, 0xef, 0x77, 0xee, 0xb9, 0x4c, 0xa5, 0x0a, 0x14, 0xa9, 0xc5, 0xd4, 0xfc, 0x4e,
0x71, 0xb7, 0x8e, 0xc5, 0x50, 0xfb, 0x00, 0x6a, 0xaf, 0xdf, 0xc6, 0x81, 0xe3, 0x50, 0xe7, 0xf2,
0x9d, 0x7b, 0x2e, 0xf3, 0x25, 0x96, 0x31, 0x96, 0x42, 0x2c, 0x0a, 0x44, 0x61, 0x91, 0xe9, 0xa4,
0x6f, 0xc5, 0x56, 0x12, 0x63, 0xe1, 0x58, 0xe6, 0x06, 0xbe, 0x49, 0xa2, 0xe2, 0x15, 0x51, 0xda,
0x4f, 0xd0, 0x48, 0x9d, 0x5c, 0xc2, 0x7d, 0x0d, 0xc5, 0xbf, 0xb8, 0xe7, 0x12, 0x2f, 0x9b, 0xba,
0xd2, 0x8a, 0x62, 0x21, 0x25, 0xac, 0x44, 0x59, 0x97, 0x3a, 0x94, 0x5d, 0x25, 0x65, 0x33, 0xc5,
0x99, 0xdd, 0x8d, 0x77, 0xcc, 0x75, 0x66, 0x85, 0x33, 0xe6, 0x68, 0x7b, 0x50, 0x3d, 0xea, 0xb4,
0x93, 0xba, 0xfc, 0x0c, 0xaa, 0xe7, 0x36, 0x75, 0xae, 0xc7, 0x66, 0x12, 0xc7, 0x75, 0x0c, 0x92,
0x15, 0x06, 0xf2, 0xbf, 0xd7, 0x60, 0xf3, 0xd0, 0xb0, 0x2e, 0x49, 0x92, 0x31, 0x85, 0xb3, 0x89,
0x13, 0x96, 0xed, 0xbc, 0xdc, 0x3f, 0x26, 0x85, 0x19, 0xa7, 0xd4, 0x8a, 0x33, 0xe5, 0x94, 0x4a,
0x8e, 0x47, 0xad, 0x48, 0x0f, 0x31, 0x94, 0x91, 0x6d, 0x38, 0xc1, 0x85, 0x61, 0xf2, 0xc0, 0x27,
0xbe, 0x8c, 0x97, 0x0a, 0x9e, 0xe3, 0x89, 0x1d, 0x3c, 0xdf, 0xb5, 0x02, 0x93, 0xcb, 0xb0, 0xa9,
0xe0, 0x98, 0x94, 0x66, 0x25, 0x3e, 0x35, 0xc2, 0xea, 0x2b, 0xcc, 0x2a, 0x29, 0xf4, 0x14, 0xaa,
0x01, 0x23, 0xe3, 0x56, 0xbb, 0x35, 0xee, 0xb4, 0x06, 0xb2, 0x02, 0x97, 0x71, 0x25, 0x60, 0xa4,
0xd5, 0x6e, 0x75, 0x5a, 0x03, 0x51, 0x2b, 0xc5, 0x3c, 0x1e, 0xb6, 0xfb, 0xba, 0x5a, 0x0e, 0x6b,
0x65, 0xc0, 0x88, 0xa4, 0xd1, 0x2e, 0x28, 0x62, 0xb2, 0xd7, 0x6f, 0x8f, 0xdf, 0x77, 0xfe, 0x78,
0x70, 0xdc, 0xc4, 0xed, 0xa8, 0x9e, 0x6e, 0x06, 0x8c, 0xf4, 0xfa, 0xed, 0x98, 0x8b, 0x34, 0xa8,
0xc7, 0x92, 0x83, 0xe3, 0x53, 0xbd, 0xa3, 0x82, 0x14, 0xab, 0x86, 0x62, 0x92, 0x15, 0xab, 0x22,
0x64, 0x70, 0xf3, 0x4c, 0xad, 0x26, 0xaa, 0x88, 0x78, 0x6a, 0x9e, 0xa1, 0x87, 0xb0, 0x21, 0xe6,
0x4f, 0x07, 0xba, 0x5a, 0x0b, 0xef, 0x7c, 0xc0, 0xc8, 0xe9, 0x40, 0x47, 0x4f, 0x00, 0xc4, 0x84,
0xde, 0xc1, 0xfd, 0xe6, 0x51, 0x54, 0xb6, 0xc5, 0xba, 0x90, 0x81, 0xde, 0xc1, 0xa6, 0xef, 0x58,
0x94, 0x8d, 0x59, 0x5c, 0xec, 0x36, 0x65, 0xc4, 0xfc, 0xdf, 0x5c, 0xc4, 0xcc, 0xfb, 0xaa, 0xc3,
0xaf, 0x88, 0xef, 0x10, 0x8e, 0xeb, 0x72, 0x69, 0xe2, 0xc2, 0x01, 0x28, 0xa6, 0x65, 0x8e, 0x89,
0x39, 0x99, 0xa1, 0x35, 0x3e, 0x1f, 0x6d, 0xd3, 0xb4, 0xcc, 0x8e, 0x39, 0x49, 0xe0, 0x9a, 0x50,
0x0b, 0x26, 0x29, 0xc5, 0x14, 0x09, 0xf5, 0x74, 0x05, 0xd4, 0xe9, 0x40, 0xc7, 0xd5, 0x60, 0x92,
0x68, 0xa4, 0x8d, 0x60, 0x6b, 0xf1, 0x66, 0xb2, 0xcd, 0x71, 0x19, 0x1f, 0x1b, 0x96, 0x15, 0x97,
0x95, 0xb2, 0x60, 0x34, 0x2d, 0xcb, 0x47, 0x8f, 0xa0, 0x6c, 0x91, 0x69, 0x38, 0x17, 0x86, 0xdd,
0x86, 0x45, 0xa6, 0x62, 0x4a, 0xfb, 0x03, 0xdc, 0xbb, 0xb5, 0xa7, 0x48, 0x47, 0xa6, 0xe5, 0xbb,
0x93, 0x28, 0x72, 0x43, 0x42, 0x5c, 0xe0, 0x0b, 0x6a, 0x93, 0x08, 0x41, 0x8e, 0xb5, 0x31, 0x3c,
0x6f, 0x13, 0xcf, 0x76, 0x6f, 0x88, 0x15, 0xab, 0xd2, 0x77, 0x38, 0xf1, 0x2f, 0x0c, 0x93, 0x24,
0x07, 0x7f, 0x03, 0x6b, 0xb2, 0x71, 0xcb, 0xcb, 0x9a, 0xf9, 0x72, 0xbe, 0x66, 0x2e, 0x5b, 0x85,
0xe5, 0x1a, 0xed, 0xef, 0x45, 0x78, 0xb4, 0x1c, 0x79, 0x51, 0x36, 0x7e, 0x1b, 0x65, 0xde, 0xb0,
0xcf, 0xfa, 0xfa, 0xf3, 0x76, 0xdb, 0x93, 0x9d, 0x57, 0x98, 0xa6, 0x45, 0xf2, 0xf0, 0x84, 0x71,
0x08, 0x63, 0xfb, 0x71, 0x72, 0x98, 0x71, 0x44, 0x47, 0xee, 0x10, 0x3e, 0x31, 0xd8, 0xf5, 0x7e,
0x74, 0x2f, 0x13, 0x3a, 0x7d, 0xeb, 0xd7, 0xe7, 0x6f, 0xfd, 0x31, 0x20, 0xeb, 0xca, 0xf4, 0x74,
0xe2, 0x4f, 0x89, 0x9f, 0x74, 0x62, 0x25, 0x19, 0x03, 0xcf, 0xe6, 0x94, 0x6c, 0xf7, 0x5a, 0xa3,
0x79, 0x31, 0xbc, 0x60, 0x29, 0x7a, 0x01, 0xf5, 0x38, 0x94, 0xfa, 0xce, 0x29, 0x23, 0xd1, 0x75,
0x9e, 0x67, 0x6a, 0x2d, 0x58, 0x93, 0xad, 0x24, 0x40, 0x69, 0xd0, 0x1c, 0x9e, 0x36, 0x8f, 0x94,
0x1c, 0x6a, 0x40, 0x55, 0xec, 0x31, 0x6e, 0x1d, 0xf5, 0x3b, 0xc3, 0x13, 0x25, 0x9f, 0x30, 0xf4,
0x0e, 0xfe, 0xd0, 0xc1, 0x4a, 0x01, 0xd5, 0xa1, 0x72, 0x3a, 0x1c, 0x34, 0x87, 0xcd, 0xc3, 0x4e,
0x5b, 0x29, 0x6a, 0xff, 0x29, 0x02, 0xba, 0xad, 0xd5, 0xac, 0x5b, 0x1b, 0xb9, 0x7e, 0x92, 0x15,
0x67, 0x1c, 0xb4, 0x0b, 0x8d, 0x90, 0x4a, 0xcc, 0x1d, 0xc5, 0x4e, 0x96, 0x2d, 0xda, 0x04, 0x9b,
0x18, 0x4c, 0x36, 0x02, 0x91, 0xc5, 0x67, 0x0c, 0xf4, 0x0a, 0x14, 0xc7, 0xe5, 0xa2, 0x3f, 0x76,
0x7d, 0xca, 0x0d, 0x4e, 0xa7, 0x61, 0x01, 0x2d, 0xe3, 0x5b, 0x7c, 0xb4, 0x07, 0xc8, 0x72, 0x87,
0x2e, 0x3f, 0xa0, 0x8e, 0x35, 0xdb, 0x36, 0xf4, 0xc5, 0x82, 0x19, 0x51, 0x2f, 0x4d, 0xc3, 0xb6,
0xcf, 0x0d, 0xf3, 0x3a, 0xac, 0x21, 0x51, 0xca, 0xcc, 0x70, 0xd1, 0x3e, 0x94, 0x7c, 0xc3, 0xb9,
0x24, 0x4c, 0xdd, 0x90, 0x51, 0xfc, 0x78, 0x89, 0xcb, 0xb0, 0x10, 0xc2, 0x91, 0x2c, 0xea, 0xc2,
0x86, 0xeb, 0x71, 0xea, 0x3a, 0x2c, 0x7a, 0xb5, 0xfc, 0xfa, 0x0e, 0x4f, 0xef, 0x1d, 0x87, 0xe2,
0x1d, 0x87, 0xfb, 0x37, 0x38, 0x5e, 0x8c, 0x5a, 0x50, 0x65, 0xe2, 0x80, 0x66, 0xcf, 0x65, 0x9c,
0xa9, 0x15, 0x89, 0xf5, 0x7c, 0x19, 0x56, 0x22, 0x89, 0xd3, 0xab, 0xb6, 0xdf, 0x40, 0x2d, 0x8d,
0x2e, 0xaa, 0xce, 0x35, 0xb9, 0x89, 0xfc, 0x26, 0x86, 0xe2, 0xde, 0xcb, 0xbe, 0x35, 0x72, 0x53,
0x48, 0xbc, 0x29, 0x7c, 0x9f, 0xd7, 0x5c, 0x68, 0x64, 0xce, 0x28, 0x6b, 0xa8, 0x18, 0x1c, 0xb9,
0x1f, 0x89, 0x9f, 0xf4, 0x97, 0x09, 0x27, 0x99, 0x3f, 0xf5, 0x3c, 0x12, 0xa7, 0x9d, 0x14, 0x27,
0xf1, 0xb9, 0xec, 0x87, 0xd2, 0x3e, 0x17, 0x0c, 0xed, 0x7b, 0xb8, 0xbf, 0xe8, 0x44, 0xf2, 0x0d,
0x61, 0x98, 0xc9, 0x1b, 0xc2, 0x30, 0x65, 0x9f, 0xe1, 0x45, 0xf8, 0x05, 0xea, 0x69, 0x1b, 0xb0,
0xde, 0x99, 0x78, 0xfc, 0xe6, 0x55, 0x1b, 0x1a, 0x99, 0x57, 0x19, 0xaa, 0xc2, 0xc6, 0xe9, 0xf0,
0xfd, 0xf0, 0xf8, 0x6c, 0xa8, 0xe4, 0x50, 0x09, 0x0a, 0xcd, 0x91, 0x92, 0x47, 0x1b, 0x50, 0xd4,
0x4f, 0x9a, 0x4a, 0x01, 0x7d, 0x01, 0x0d, 0xfd, 0xa4, 0x39, 0xee, 0x36, 0xfb, 0x47, 0xc7, 0x1f,
0x3a, 0x78, 0xdc, 0x1c, 0x29, 0xc5, 0x57, 0x2f, 0xc3, 0x37, 0x7a, 0xfc, 0x3a, 0x43, 0x35, 0x28,
0x9f, 0x8d, 0x9a, 0xaf, 0xc7, 0x23, 0xfd, 0xbd, 0x92, 0x43, 0x65, 0x58, 0x3b, 0x1e, 0x75, 0x86,
0x4a, 0xfe, 0xf5, 0x3f, 0x14, 0x28, 0x8d, 0xf6, 0xcf, 0x86, 0xa3, 0x6f, 0xd1, 0x00, 0xd4, 0x43,
0xc2, 0xe3, 0xbc, 0x38, 0x97, 0x5e, 0x11, 0x9a, 0xcf, 0x47, 0x42, 0xd1, 0xed, 0x2f, 0x57, 0x94,
0x00, 0x2d, 0x87, 0x7a, 0xf0, 0x45, 0x88, 0xf5, 0x8b, 0x91, 0xba, 0x70, 0xef, 0x90, 0xf0, 0x4c,
0xa3, 0xf2, 0x33, 0x70, 0x8e, 0xe1, 0x9e, 0x7e, 0x0b, 0x67, 0xd5, 0x9a, 0xbb, 0x00, 0x7f, 0x80,
0xcd, 0x43, 0xc2, 0xd3, 0x2d, 0xd7, 0x22, 0xad, 0xd4, 0x39, 0x5e, 0x4a, 0x3a, 0x44, 0xd0, 0xe7,
0x11, 0x96, 0x4a, 0x6f, 0x2f, 0xc0, 0xd6, 0x72, 0xa8, 0x0d, 0xb5, 0x81, 0x68, 0xe6, 0x4e, 0x07,
0xba, 0xcc, 0x3a, 0x77, 0x14, 0xe6, 0x25, 0x28, 0x63, 0x78, 0x16, 0x3a, 0x6b, 0x79, 0xd1, 0xfa,
0xcc, 0x02, 0xb8, 0x64, 0x03, 0x17, 0xfe, 0xff, 0x90, 0xf0, 0xa6, 0x6d, 0xdf, 0x5d, 0x77, 0x17,
0xd9, 0x70, 0x6f, 0x3e, 0x69, 0xdc, 0x85, 0xa1, 0xe5, 0x90, 0x0d, 0x2f, 0x52, 0xd1, 0xbc, 0x7c,
0xb7, 0xed, 0x39, 0xe4, 0xb9, 0x97, 0xff, 0xf6, 0x67, 0x1e, 0x59, 0xcb, 0xa1, 0x81, 0x7c, 0x97,
0xe0, 0xc0, 0x89, 0xf2, 0xee, 0x93, 0xc5, 0x9d, 0x7e, 0xf4, 0x1c, 0xda, 0x7e, 0xbc, 0x6c, 0x5a,
0xb4, 0xf2, 0x12, 0xae, 0x91, 0x86, 0x13, 0x2f, 0x9d, 0x3b, 0x10, 0x97, 0x3f, 0x2d, 0xb4, 0x1c,
0xc2, 0xf0, 0xa0, 0xd7, 0x6f, 0x1f, 0x12, 0x3e, 0x7b, 0x6f, 0x84, 0xaf, 0x93, 0xe5, 0xab, 0xee,
0x54, 0xb1, 0x03, 0xa8, 0xd7, 0x6f, 0xb7, 0x0c, 0xc7, 0x24, 0xf6, 0x4c, 0xcb, 0x15, 0x80, 0x8b,
0xe3, 0x62, 0x08, 0x0f, 0x43, 0xd5, 0xa2, 0xd7, 0x58, 0x22, 0xbf, 0x38, 0x0e, 0x9e, 0x2c, 0xc5,
0x17, 0x4f, 0x3d, 0x2d, 0x87, 0x0e, 0x60, 0x2b, 0x51, 0xab, 0x69, 0xdb, 0x77, 0xc0, 0x2d, 0xd6,
0xe9, 0xcf, 0xb1, 0xb9, 0x32, 0x2f, 0xc4, 0x55, 0xa7, 0xfb, 0x2a, 0x3b, 0xb5, 0xf0, 0x75, 0x29,
0x15, 0xac, 0x76, 0xf5, 0xe4, 0xfb, 0x20, 0xe3, 0xd6, 0xec, 0xb7, 0xc2, 0x12, 0x05, 0xdf, 0x03,
0x74, 0xf5, 0xf8, 0xd3, 0x02, 0xcd, 0x7b, 0x2a, 0xf3, 0x39, 0x92, 0xb1, 0x58, 0xf6, 0xa7, 0x43,
0x7a, 0xa0, 0xde, 0xd5, 0x0f, 0x09, 0x8f, 0xff, 0x0c, 0x32, 0x78, 0x99, 0x1f, 0x87, 0x0c, 0x5e,
0xf6, 0xa3, 0x41, 0xcb, 0xa1, 0x1f, 0xe1, 0x41, 0x57, 0x6f, 0xf9, 0xc4, 0xe0, 0x64, 0xee, 0x87,
0x07, 0xcd, 0x17, 0xfe, 0x45, 0xff, 0x4b, 0xdb, 0xda, 0x2a, 0x91, 0x64, 0x87, 0x1f, 0xa0, 0x2a,
0xff, 0xac, 0x8e, 0x64, 0x3b, 0x96, 0xf1, 0x4a, 0xfa, 0x63, 0x2e, 0x6b, 0x3e, 0x31, 0xa5, 0xe5,
0xbe, 0xc9, 0xa3, 0x43, 0xa8, 0x76, 0xcc, 0xab, 0xe4, 0x17, 0x65, 0x55, 0x0e, 0x58, 0x31, 0xa7,
0xe5, 0x50, 0x1f, 0x50, 0x98, 0x62, 0xe6, 0x3e, 0xc4, 0x97, 0x7f, 0x51, 0x6e, 0x6f, 0xdd, 0x9e,
0x12, 0xe1, 0xa1, 0xe5, 0xd0, 0xef, 0xa1, 0x76, 0x48, 0xf8, 0xec, 0xfb, 0x76, 0x51, 0xbc, 0x2e,
0x5f, 0xdd, 0x85, 0xad, 0xd0, 0x1c, 0x09, 0xb3, 0x75, 0x15, 0x36, 0x73, 0xff, 0x13, 0xce, 0x79,
0x49, 0x7e, 0xf8, 0xff, 0xf6, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x05, 0xe1, 0x21, 0x75, 0xfe,
0x17, 0x00, 0x00,
// 2266 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xdd, 0x73, 0xdb, 0xb8,
0x11, 0xd7, 0x87, 0x3f, 0xa4, 0x95, 0x64, 0x31, 0xb8, 0x8b, 0xc3, 0xf8, 0xf2, 0xe1, 0xb0, 0xb9,
0xd4, 0x93, 0xeb, 0xa8, 0x77, 0xa9, 0xe7, 0x7a, 0x93, 0x69, 0x27, 0x27, 0x4b, 0x94, 0xa5, 0xc4,
0xfa, 0x18, 0xd0, 0x8a, 0xa7, 0xed, 0x83, 0x8e, 0x26, 0x61, 0x9b, 0x0d, 0x45, 0xb2, 0x04, 0xa8,
0xc4, 0x7d, 0xb8, 0x87, 0xbe, 0xf7, 0xb9, 0xff, 0x45, 0xff, 0xab, 0xfe, 0x1d, 0xed, 0x00, 0xfc,
0x10, 0x49, 0x4b, 0x76, 0xda, 0xbe, 0x01, 0x8b, 0xc5, 0x0f, 0x8b, 0xdd, 0xc5, 0x2e, 0x76, 0x01,
0x2e, 0x7d, 0xcf, 0x68, 0x79, 0xbe, 0xcb, 0x5c, 0x54, 0x9b, 0x1c, 0x7e, 0x74, 0x26, 0xdf, 0xcd,
0x38, 0x49, 0xf9, 0x47, 0x19, 0xea, 0x67, 0x56, 0xcf, 0xd2, 0x08, 0x63, 0x96, 0x73, 0x49, 0x11,
0x82, 0x0d, 0x47, 0x9f, 0x13, 0xb9, 0xb8, 0x5f, 0x3c, 0xa8, 0x62, 0x31, 0x46, 0x7b, 0x50, 0x31,
0x2d, 0xaa, 0x9f, 0xdb, 0xc4, 0x94, 0x4b, 0xfb, 0xc5, 0x83, 0x0a, 0x4e, 0xe6, 0xe8, 0x09, 0x80,
0x4f, 0x2e, 0x03, 0x5b, 0x67, 0xae, 0x7f, 0x2d, 0x97, 0xc5, 0xae, 0x14, 0x05, 0xbd, 0x81, 0xfa,
0x47, 0xd7, 0xff, 0x60, 0x39, 0x97, 0xb3, 0xb9, 0x6b, 0x12, 0x79, 0x63, 0xbf, 0x78, 0xb0, 0xf3,
0xea, 0x51, 0x2b, 0x25, 0x44, 0x8b, 0x0b, 0x70, 0x16, 0x32, 0x0d, 0x5d, 0x93, 0xe0, 0xda, 0xc7,
0xe5, 0x04, 0x7d, 0x0f, 0x55, 0x3d, 0x60, 0x57, 0xe1, 0xee, 0x4d, 0xb1, 0xfb, 0xe1, 0x8d, 0xdd,
0xed, 0x80, 0x5d, 0x89, 0xad, 0x15, 0x3d, 0x1a, 0x21, 0x19, 0xb6, 0x8d, 0x2b, 0xdd, 0x71, 0x88,
0x2d, 0x6f, 0xed, 0x17, 0x0f, 0x1a, 0x38, 0x9e, 0xa2, 0x16, 0x6c, 0xe9, 0xde, 0xec, 0x48, 0xd3,
0xe4, 0xed, 0xfd, 0xe2, 0x41, 0xed, 0xd5, 0x83, 0x1b, 0x70, 0x47, 0x9a, 0xd6, 0xb9, 0xb8, 0xc4,
0x9b, 0xba, 0x77, 0xa4, 0x69, 0xe8, 0x0d, 0x34, 0x0d, 0xdb, 0x22, 0x0e, 0xe3, 0x7b, 0x66, 0xb6,
0x45, 0x99, 0x5c, 0xd9, 0x2f, 0xdf, 0xb6, 0xb1, 0x11, 0xf2, 0x1f, 0x69, 0xda, 0x89, 0x45, 0x19,
0xfa, 0x0a, 0xaa, 0x57, 0x96, 0x49, 0x66, 0x94, 0x5a, 0xa6, 0x5c, 0x0d, 0x15, 0xc8, 0x09, 0x1a,
0xb5, 0x4c, 0xb4, 0x0b, 0x5b, 0x0e, 0xf9, 0x34, 0x77, 0x1d, 0xb9, 0x21, 0x56, 0xa2, 0x99, 0xf2,
0xcf, 0x22, 0x54, 0x85, 0x65, 0x98, 0xce, 0x08, 0x6a, 0xc1, 0x86, 0x50, 0x40, 0x51, 0x28, 0x60,
0xef, 0xc6, 0xc1, 0x82, 0x4b, 0x68, 0x40, 0xf0, 0xa5, 0x6f, 0x5f, 0xca, 0xde, 0x1e, 0xc1, 0x86,
0x90, 0x23, 0x34, 0x95, 0x18, 0xa3, 0x0e, 0x34, 0x8d, 0xc0, 0xf7, 0x89, 0xc3, 0x62, 0x3f, 0x10,
0x76, 0xaa, 0xad, 0xd0, 0x74, 0xcc, 0x80, 0xf3, 0x3b, 0x94, 0x57, 0x00, 0x4b, 0x15, 0xf0, 0x63,
0x34, 0x6d, 0xd0, 0x8d, 0xfd, 0x88, 0x8f, 0x91, 0x04, 0xe5, 0x89, 0xf6, 0x4e, 0x08, 0x54, 0xc5,
0x7c, 0xa8, 0x3c, 0x83, 0x86, 0xc6, 0x7c, 0x6e, 0x6a, 0x42, 0xa9, 0x7e, 0x49, 0x38, 0xcb, 0x9c,
0x5e, 0x46, 0xbb, 0xf8, 0x50, 0x69, 0x41, 0x5d, 0x5d, 0x10, 0x87, 0x61, 0xf2, 0x97, 0x80, 0x50,
0xc6, 0x1d, 0x8e, 0x9b, 0x80, 0x38, 0xa7, 0xd7, 0x5e, 0xa8, 0x8f, 0x32, 0x4e, 0x51, 0x14, 0x1d,
0x40, 0xf0, 0xbf, 0xd7, 0xed, 0x80, 0xbb, 0xee, 0x36, 0xa3, 0xe2, 0x84, 0x10, 0xb3, 0x5f, 0xc0,
0x31, 0x01, 0xed, 0xc2, 0x26, 0x3b, 0x77, 0xdd, 0x50, 0x43, 0x95, 0x7e, 0x01, 0x87, 0x53, 0x24,
0xc3, 0x16, 0xb3, 0x1c, 0xf6, 0xfd, 0xa1, 0xd0, 0x51, 0xb9, 0x5f, 0xc0, 0xd1, 0xfc, 0x68, 0x13,
0xca, 0x0b, 0xdd, 0x56, 0x4e, 0x60, 0x53, 0x1c, 0xc1, 0x2f, 0xc9, 0x96, 0x52, 0x88, 0x31, 0xfa,
0x35, 0x6c, 0x2d, 0xf8, 0xd1, 0x54, 0x2e, 0xad, 0x70, 0x92, 0xa5, 0x68, 0x38, 0x62, 0x53, 0x7e,
0x82, 0x2f, 0x4f, 0xc9, 0xdc, 0xeb, 0x5a, 0xfe, 0xd8, 0xef, 0x59, 0x36, 0x89, 0x2f, 0x2a, 0x41,
0xd9, 0xb4, 0xfc, 0x58, 0x15, 0xa6, 0xe5, 0x73, 0x57, 0xf1, 0x7c, 0x72, 0x61, 0x7d, 0x8a, 0x54,
0x18, 0xcd, 0xb8, 0x4a, 0x5c, 0xc7, 0xbe, 0xee, 0xb9, 0xb6, 0x49, 0x7c, 0x21, 0x74, 0x05, 0xa7,
0x28, 0xca, 0x6f, 0xe1, 0x7e, 0xee, 0x04, 0xea, 0xb9, 0x0e, 0x25, 0xe1, 0xe3, 0xa5, 0x81, 0xcd,
0x26, 0x3a, 0xbb, 0x8a, 0x4e, 0x4a, 0x51, 0x94, 0x31, 0x34, 0x31, 0xd1, 0xcd, 0xb4, 0x54, 0x08,
0x36, 0xbc, 0x25, 0xb3, 0x18, 0xa3, 0x2f, 0x61, 0x93, 0x32, 0xdd, 0x67, 0x42, 0xac, 0x32, 0x0e,
0x27, 0x9c, 0xd3, 0xd4, 0x99, 0x2e, 0xe4, 0xa9, 0x63, 0x31, 0x56, 0xbe, 0x05, 0x69, 0x09, 0x18,
0x09, 0xf1, 0x08, 0xaa, 0x3e, 0xd1, 0xcd, 0x8e, 0x1b, 0x38, 0x2c, 0xd2, 0xe4, 0x92, 0xa0, 0x2c,
0x40, 0x3a, 0xf3, 0x2d, 0x46, 0xee, 0x92, 0x61, 0x97, 0x3f, 0x6a, 0x8f, 0x38, 0x71, 0x84, 0x8a,
0x66, 0x48, 0x81, 0xfa, 0x3c, 0xa0, 0x6c, 0xe4, 0x32, 0xf5, 0x13, 0x7f, 0xb9, 0xa1, 0x76, 0x32,
0xb4, 0x44, 0xd2, 0x8d, 0x94, 0xa4, 0x5f, 0x43, 0x93, 0x1f, 0x39, 0x70, 0x2e, 0xdc, 0x5b, 0x8e,
0x55, 0x7e, 0x06, 0x69, 0xc9, 0x16, 0x5d, 0x68, 0x55, 0x08, 0xe5, 0xaf, 0xce, 0xfa, 0x2b, 0x89,
0x34, 0x24, 0xc6, 0x9c, 0x26, 0xde, 0x74, 0x59, 0x3c, 0xd0, 0xe4, 0xdd, 0xce, 0x5d, 0xf3, 0xd4,
0x9a, 0x87, 0x91, 0xb2, 0x8c, 0xe3, 0x29, 0x57, 0xb2, 0x45, 0xbb, 0x96, 0x2f, 0x62, 0x60, 0x05,
0x87, 0x13, 0xe5, 0x8f, 0x20, 0xf5, 0x07, 0x5d, 0xcd, 0xf0, 0x2d, 0x2f, 0xfd, 0x42, 0xa8, 0x20,
0xa4, 0xad, 0xba, 0xa4, 0xa0, 0x17, 0xb0, 0xc3, 0xac, 0x39, 0x71, 0x03, 0xa6, 0x11, 0xc3, 0x75,
0x4c, 0x1a, 0x85, 0x88, 0x1c, 0x55, 0x79, 0x02, 0xf5, 0x04, 0xfb, 0xad, 0x7b, 0x8e, 0x76, 0xa0,
0x64, 0x99, 0x02, 0xaf, 0x81, 0x4b, 0x96, 0xa9, 0x3c, 0x4f, 0x9d, 0xfd, 0xd6, 0x3d, 0x17, 0xa1,
0x4e, 0x82, 0xb2, 0x65, 0x52, 0xb9, 0xb8, 0x5f, 0x3e, 0x68, 0x60, 0x3e, 0x54, 0xde, 0x83, 0xdc,
0x1f, 0x74, 0x71, 0xe0, 0x38, 0x96, 0x73, 0xf9, 0xd6, 0x3d, 0x17, 0x91, 0x0a, 0x0b, 0x1f, 0x4b,
0x21, 0x96, 0x39, 0x22, 0xd7, 0xc8, 0x62, 0x3e, 0x30, 0x63, 0x2d, 0xf1, 0x31, 0x37, 0x2c, 0x75,
0x03, 0xdf, 0x20, 0x51, 0xc4, 0x8a, 0x66, 0xca, 0xcf, 0xd0, 0x4c, 0xdd, 0x5c, 0xc0, 0x7d, 0x03,
0xe5, 0x3f, 0xbb, 0xe7, 0x02, 0x2f, 0x1f, 0xba, 0xd2, 0x82, 0x62, 0xce, 0xc5, 0xb5, 0x64, 0xd1,
0x9e, 0xe5, 0x58, 0xf4, 0x2a, 0x49, 0x6b, 0x29, 0xca, 0xf2, 0x6d, 0xbc, 0xa5, 0xae, 0xb3, 0x4c,
0x6c, 0x31, 0x45, 0x69, 0x41, 0xed, 0x44, 0xed, 0x26, 0x79, 0xf3, 0x29, 0xd4, 0xce, 0x6d, 0xcb,
0xf9, 0x30, 0x33, 0x12, 0x3f, 0x6e, 0x60, 0x10, 0xa4, 0xd0, 0x91, 0xff, 0xb5, 0x01, 0x3b, 0xc7,
0xba, 0x79, 0x49, 0x92, 0x88, 0xc9, 0x8d, 0x4d, 0x9c, 0x30, 0xad, 0x16, 0xc5, 0xf9, 0xf1, 0x94,
0xab, 0x71, 0x61, 0x99, 0x71, 0xa4, 0x5c, 0x58, 0x82, 0xe2, 0x25, 0x51, 0x9b, 0x0f, 0x85, 0x67,
0xeb, 0x4e, 0x70, 0xa1, 0x1b, 0x2c, 0xf0, 0x89, 0x2f, 0xfc, 0xa5, 0x8a, 0x33, 0x34, 0x7e, 0x82,
0xe7, 0xbb, 0x66, 0x60, 0x30, 0xe1, 0x36, 0x55, 0x1c, 0x4f, 0x85, 0x5a, 0x89, 0x6f, 0xe9, 0x61,
0x76, 0xe4, 0x6a, 0x15, 0x33, 0xf4, 0x04, 0x6a, 0x01, 0x25, 0xb3, 0x4e, 0xb7, 0x33, 0x53, 0x3b,
0x43, 0x91, 0x21, 0x2b, 0xb8, 0x1a, 0x50, 0xd2, 0xe9, 0x76, 0xd4, 0xce, 0x90, 0xe7, 0x32, 0xbe,
0x8e, 0x47, 0xdd, 0x81, 0x26, 0x57, 0xc2, 0x5c, 0x16, 0x50, 0x22, 0xe6, 0xe8, 0x00, 0x24, 0xbe,
0xd8, 0x1f, 0x74, 0x67, 0xef, 0xd4, 0x3f, 0x1c, 0x8d, 0xdb, 0xb8, 0x1b, 0xe5, 0xbb, 0x9d, 0x80,
0x92, 0xfe, 0xa0, 0x1b, 0x53, 0x91, 0x02, 0x8d, 0x98, 0x73, 0x38, 0x9e, 0x6a, 0xaa, 0x0c, 0x82,
0xad, 0x16, 0xb2, 0x09, 0x52, 0x2c, 0x0a, 0xe7, 0xc1, 0xed, 0x33, 0xb9, 0x96, 0x88, 0xc2, 0xfd,
0xa9, 0x7d, 0x86, 0x1e, 0xc0, 0x36, 0x5f, 0x9f, 0x0e, 0x35, 0xb9, 0x1e, 0xbe, 0xf9, 0x80, 0x92,
0xe9, 0x50, 0x43, 0x8f, 0x01, 0xf8, 0x82, 0xa6, 0xe2, 0x41, 0xfb, 0x24, 0x4a, 0xab, 0x7c, 0x5f,
0x48, 0x40, 0x6f, 0x61, 0xc7, 0x77, 0x4c, 0x8b, 0xce, 0x68, 0x9c, 0xec, 0x76, 0x84, 0xc7, 0xfc,
0x22, 0xe3, 0x31, 0x59, 0x5b, 0xa9, 0xec, 0x8a, 0xf8, 0x0e, 0x61, 0xb8, 0x21, 0xb6, 0x26, 0x26,
0x1c, 0x82, 0x64, 0x98, 0xc6, 0x8c, 0x18, 0xf3, 0x25, 0x5a, 0xf3, 0xf3, 0xd1, 0x76, 0x0c, 0xd3,
0x50, 0x8d, 0x79, 0x02, 0xd7, 0x86, 0x7a, 0x30, 0x4f, 0x09, 0x26, 0x09, 0xa8, 0x27, 0xb7, 0x40,
0x4d, 0x87, 0x1a, 0xae, 0x05, 0xf3, 0x44, 0x22, 0x65, 0x02, 0xbb, 0xab, 0x0f, 0x13, 0xdf, 0x10,
0x97, 0xb2, 0x99, 0x6e, 0x9a, 0x71, 0x5a, 0xa9, 0x70, 0x42, 0xdb, 0x34, 0x7d, 0xf4, 0x10, 0x2a,
0x26, 0x59, 0x84, 0x6b, 0xa1, 0xdb, 0x6d, 0x9b, 0x64, 0xc1, 0x97, 0x94, 0xdf, 0xc3, 0xbd, 0x1b,
0x67, 0xf2, 0x70, 0x64, 0x98, 0xbe, 0x3b, 0x8f, 0x3c, 0x37, 0x9c, 0xf0, 0x07, 0x7c, 0x61, 0xd9,
0x24, 0x42, 0x10, 0x63, 0x65, 0x06, 0xcf, 0xba, 0xc4, 0xb3, 0xdd, 0x6b, 0x62, 0xc6, 0xa2, 0x0c,
0x1c, 0x46, 0xfc, 0x0b, 0xdd, 0x20, 0xc9, 0xc5, 0x5f, 0xc3, 0x86, 0xf8, 0x58, 0x15, 0x45, 0xce,
0x7c, 0x91, 0xcd, 0x99, 0xeb, 0x76, 0x61, 0xb1, 0x47, 0xf9, 0x5b, 0x19, 0x1e, 0xae, 0x47, 0x5e,
0x15, 0x8d, 0xdf, 0x44, 0x91, 0xb7, 0x24, 0x7e, 0x53, 0xdf, 0x7c, 0xde, 0x69, 0xad, 0xd4, 0xf7,
0x8a, 0x07, 0x0f, 0x8f, 0x2b, 0x87, 0x50, 0x7a, 0x18, 0x07, 0x87, 0x25, 0x85, 0xff, 0x98, 0x1d,
0xc2, 0xe6, 0x3a, 0xfd, 0x70, 0x18, 0xbd, 0xcb, 0x64, 0x9e, 0x7e, 0xf5, 0x9b, 0xd9, 0x57, 0x3f,
0x06, 0x64, 0x5e, 0x19, 0x9e, 0x46, 0xfc, 0x05, 0xf1, 0x93, 0x9f, 0xd8, 0x96, 0xf0, 0x81, 0xa7,
0x19, 0x21, 0xbb, 0xfd, 0xce, 0x24, 0xcb, 0x86, 0x57, 0x6c, 0x45, 0xcf, 0xa1, 0x11, 0xbb, 0xd2,
0xc0, 0x99, 0x52, 0x12, 0x3d, 0xe7, 0x2c, 0x51, 0xe9, 0xc0, 0x86, 0xf8, 0x31, 0x03, 0x6c, 0x0d,
0xdb, 0xa3, 0x69, 0xfb, 0x44, 0x2a, 0xa0, 0x26, 0xd4, 0xf8, 0x19, 0xb3, 0xce, 0xc9, 0x40, 0x1d,
0x9d, 0x4a, 0xc5, 0x84, 0xa0, 0xa9, 0xf8, 0xbd, 0x8a, 0xa5, 0x12, 0x6a, 0x40, 0x75, 0x3a, 0x1a,
0xb6, 0x47, 0xed, 0x63, 0xb5, 0x2b, 0x95, 0x95, 0x7f, 0x97, 0x01, 0xdd, 0x94, 0x6a, 0xf9, 0x5b,
0x9b, 0xb8, 0x7e, 0x12, 0x15, 0x97, 0x14, 0x74, 0x00, 0xcd, 0x70, 0x96, 0xa8, 0x3b, 0xf2, 0x9d,
0x3c, 0x99, 0x7f, 0x13, 0x6c, 0xa2, 0x53, 0xf1, 0x11, 0x88, 0x34, 0xbe, 0x24, 0xa0, 0x97, 0x20,
0x39, 0x2e, 0xe3, 0x65, 0x80, 0xeb, 0x5b, 0x4c, 0x67, 0xd6, 0x22, 0x4c, 0xa0, 0x15, 0x7c, 0x83,
0x8e, 0x5a, 0x80, 0x4c, 0x77, 0xe4, 0xb2, 0x23, 0xcb, 0x31, 0x97, 0xc7, 0x86, 0xb6, 0x58, 0xb1,
0xc2, 0xf3, 0xa5, 0xa1, 0xdb, 0xf6, 0xb9, 0x6e, 0x7c, 0x08, 0x73, 0x48, 0x14, 0x32, 0x73, 0x54,
0x74, 0x08, 0x5b, 0xbe, 0xee, 0x5c, 0x12, 0x2a, 0x6f, 0x0b, 0x2f, 0x7e, 0xb4, 0xc6, 0x64, 0x98,
0x33, 0xe1, 0x88, 0x17, 0xf5, 0x60, 0xdb, 0xf5, 0x98, 0xe5, 0x3a, 0x34, 0xaa, 0x2a, 0x7e, 0x75,
0x87, 0xa5, 0x5b, 0xe3, 0x90, 0x5d, 0x75, 0x98, 0x7f, 0x8d, 0xe3, 0xcd, 0xa8, 0x03, 0x35, 0xca,
0x2f, 0x68, 0xf4, 0x5d, 0xca, 0xa8, 0x5c, 0x15, 0x58, 0xcf, 0xd6, 0x61, 0x25, 0x9c, 0x38, 0xbd,
0x6b, 0xef, 0x35, 0xd4, 0xd3, 0xe8, 0x3c, 0xeb, 0x7c, 0x20, 0xd7, 0x91, 0xdd, 0xf8, 0x90, 0xbf,
0x7b, 0xf1, 0x6f, 0x8d, 0xcc, 0x14, 0x4e, 0x5e, 0x97, 0x7e, 0x28, 0x2a, 0x2e, 0x34, 0x73, 0x77,
0x14, 0x39, 0x94, 0x0f, 0x4e, 0xdc, 0x8f, 0xc4, 0x4f, 0xfe, 0x97, 0x09, 0x25, 0x59, 0x9f, 0x7a,
0x1e, 0x89, 0xc3, 0x4e, 0x8a, 0x92, 0xd8, 0x5c, 0xfc, 0x87, 0xd2, 0x36, 0xe7, 0x04, 0xe5, 0x07,
0xf8, 0x72, 0xd5, 0x8d, 0x44, 0x0d, 0xa1, 0x1b, 0x49, 0x0d, 0xa1, 0x1b, 0xe2, 0x9f, 0xe1, 0x45,
0xf8, 0x25, 0xcb, 0x53, 0xb6, 0x61, 0x53, 0x9d, 0x7b, 0xec, 0xfa, 0x65, 0x17, 0x9a, 0xb9, 0xe2,
0x13, 0xd5, 0x60, 0x7b, 0x3a, 0x7a, 0x37, 0x1a, 0x9f, 0x8d, 0xa4, 0x02, 0xda, 0x82, 0x52, 0x7b,
0x22, 0x15, 0xd1, 0x36, 0x94, 0xb5, 0xd3, 0xb6, 0x54, 0x42, 0x5f, 0x40, 0x53, 0x3b, 0x6d, 0xcf,
0x7a, 0xed, 0xc1, 0xc9, 0xf8, 0xbd, 0x8a, 0x67, 0xed, 0x89, 0x54, 0x7e, 0xd9, 0x85, 0x46, 0xa6,
0x06, 0x43, 0xf7, 0xe1, 0x1e, 0xe7, 0x1a, 0x8d, 0x4f, 0x67, 0x9d, 0xf1, 0x68, 0xa4, 0x76, 0x4e,
0xd5, 0xae, 0x54, 0x40, 0x55, 0xd8, 0x6c, 0x4f, 0x66, 0x53, 0x0e, 0x78, 0x0f, 0x1a, 0x9c, 0x63,
0xb9, 0x5a, 0x7a, 0xf9, 0x22, 0xac, 0xc4, 0xe3, 0x52, 0x16, 0xd5, 0xa1, 0x72, 0x36, 0x69, 0xbf,
0x9a, 0x4d, 0xb4, 0x77, 0x52, 0x01, 0x55, 0x60, 0x63, 0x3c, 0x51, 0x47, 0x52, 0xf1, 0xd5, 0xdf,
0x25, 0xd8, 0x9a, 0x1c, 0x9e, 0x8d, 0x26, 0xdf, 0xa1, 0x21, 0xc8, 0xc7, 0x84, 0xc5, 0xd1, 0x35,
0x13, 0xa4, 0x11, 0xca, 0x46, 0x35, 0x7e, 0xdd, 0xbd, 0xaf, 0x6e, 0x49, 0x24, 0x4a, 0x01, 0xf5,
0xe1, 0x8b, 0x10, 0xeb, 0xff, 0x46, 0xea, 0xc1, 0xbd, 0x63, 0xc2, 0x72, 0xdf, 0x9d, 0xff, 0x01,
0x67, 0x0c, 0xf7, 0xb4, 0x1b, 0x38, 0xb7, 0xed, 0xb9, 0x0b, 0xf0, 0x47, 0xd8, 0x39, 0x26, 0x2c,
0xfd, 0x71, 0x5b, 0x25, 0x95, 0x9c, 0xa1, 0xa5, 0xb8, 0x43, 0x04, 0x2d, 0x8b, 0xb0, 0x96, 0x7b,
0x6f, 0x05, 0xb6, 0x52, 0x40, 0x5d, 0xa8, 0x0f, 0xf9, 0x97, 0x70, 0x3a, 0xd4, 0x44, 0xec, 0xba,
0x23, 0xbd, 0xaf, 0x41, 0x99, 0xc1, 0xd3, 0xd0, 0x58, 0xeb, 0x53, 0xdf, 0x67, 0xa6, 0xd1, 0x35,
0x07, 0xb8, 0xf0, 0xcb, 0x63, 0xc2, 0xda, 0xb6, 0x7d, 0x77, 0xf6, 0x5e, 0xa5, 0xc3, 0x56, 0x36,
0xf4, 0xdc, 0x85, 0xa1, 0x14, 0x90, 0x0d, 0xcf, 0x53, 0xde, 0xbc, 0xfe, 0xb4, 0x6c, 0xf7, 0x23,
0xd3, 0x3f, 0xd8, 0xfb, 0xcc, 0x2b, 0x2b, 0x05, 0x34, 0x14, 0xd5, 0x0d, 0x0e, 0x9c, 0x28, 0x7a,
0x3f, 0x5e, 0x5d, 0x2f, 0x44, 0x45, 0xd5, 0xde, 0xa3, 0x75, 0xcb, 0xbc, 0x20, 0x10, 0x70, 0xcd,
0x34, 0x1c, 0xaf, 0x97, 0xee, 0x40, 0x5c, 0x5f, 0xa0, 0x28, 0x05, 0x84, 0xe1, 0x7e, 0x7f, 0xd0,
0x3d, 0x26, 0x6c, 0x59, 0xb5, 0x84, 0x35, 0xce, 0xfa, 0x5d, 0x77, 0x8a, 0xa8, 0x02, 0xea, 0x0f,
0xba, 0x1d, 0xdd, 0x31, 0x88, 0xbd, 0x94, 0xf2, 0x16, 0xc0, 0xd5, 0x7e, 0x31, 0x82, 0x07, 0xa1,
0x68, 0x51, 0x4d, 0x97, 0xf0, 0xaf, 0xf6, 0x83, 0xc7, 0x6b, 0xf1, 0x79, 0xc1, 0xa8, 0x14, 0xd0,
0x11, 0xec, 0x26, 0x62, 0xb5, 0x6d, 0xfb, 0x0e, 0xb8, 0xd5, 0x32, 0xfd, 0x29, 0x56, 0x57, 0xae,
0xce, 0xbc, 0xed, 0x76, 0x5f, 0xe7, 0x97, 0x56, 0xd6, 0xa8, 0x42, 0xc0, 0x5a, 0x4f, 0x4b, 0x9a,
0x10, 0x39, 0xb3, 0xe6, 0x9b, 0x13, 0x6b, 0x04, 0x7c, 0x07, 0xd0, 0xd3, 0xe2, 0xd6, 0x07, 0xca,
0x5a, 0x2a, 0xd7, 0x62, 0xc9, 0x69, 0x2c, 0xdf, 0x2f, 0x11, 0x16, 0x68, 0xf4, 0xb4, 0x63, 0xc2,
0xe2, 0xce, 0x43, 0x0e, 0x2f, 0xd7, 0xb7, 0xc8, 0xe1, 0xe5, 0xdb, 0x15, 0x4a, 0x01, 0xfd, 0x04,
0xf7, 0x7b, 0x5a, 0xc7, 0x27, 0x3a, 0x23, 0x99, 0x3e, 0x11, 0xca, 0x7e, 0x1f, 0x56, 0x75, 0xa9,
0xf6, 0x94, 0xdb, 0x58, 0x92, 0x13, 0x7e, 0x84, 0x9a, 0xe8, 0x7c, 0x9d, 0x88, 0x4f, 0x5d, 0xce,
0x2a, 0xe9, 0xf6, 0x5e, 0x5e, 0x7d, 0x7c, 0x49, 0x29, 0x7c, 0x5b, 0x44, 0xc7, 0x50, 0x53, 0x8d,
0xab, 0xa4, 0x17, 0x73, 0x5b, 0x0c, 0xb8, 0x65, 0x4d, 0x29, 0xa0, 0x01, 0xa0, 0x30, 0xc4, 0x64,
0xda, 0xde, 0xeb, 0x1b, 0x9d, 0x7b, 0xbb, 0xab, 0x9b, 0xad, 0x4a, 0x01, 0xfd, 0x0e, 0xea, 0xc7,
0x84, 0x2d, 0x9b, 0xb4, 0xab, 0xfc, 0x75, 0xfd, 0xee, 0x1e, 0xec, 0x86, 0xea, 0x48, 0x88, 0x9d,
0xab, 0xf0, 0x4b, 0xf8, 0x5f, 0xe1, 0x9c, 0x6f, 0x89, 0xb6, 0xfe, 0x6f, 0xfe, 0x13, 0x00, 0x00,
0xff, 0xff, 0x5b, 0x33, 0x09, 0x0d, 0xe4, 0x17, 0x00, 0x00,
}

View File

@ -54,6 +54,12 @@ enum WiFiWorkingMode {
STA_FAILOVER_AP = 3; //acts as station, if connection to the given AP isn't possible spawns an own AP
}
enum WiFiStateMode {
STA_NOT_CONNECTED = 0;
AP_UP = 1; //acts as access point
STA_CONNECTED = 2; //acts as station for an existing access point
}
enum WiFiAuthMode {
WPA2_PSK = 0; //AP uses WPA2 pre-shared key
OPEN = 1; //Open System Authentication (no authentication)
@ -78,11 +84,10 @@ message WiFiSettings {
}
message WiFiState {
WiFiWorkingMode working_mode = 1;
WiFiAuthMode auth_mode = 2;
uint32 channel = 3;
WiFiBSSCfg bss = 4; //SSID currently connected (STA) or spawned (AP)
WiFiSettings currentSettings = 5;
WiFiStateMode mode = 1;
uint32 channel = 2;
string ssid = 3; //SSID currently connected (STA) or spawned (AP)
WiFiSettings currentSettings = 4;
}
message WiFiBSSCfg {

View File

@ -266,9 +266,6 @@ func (wSvc *WiFiService) runStaMode(newWifiSettings *pb.WiFiSettings) (err error
return err
}
wSvc.State.Bss.SSID = "unknown SSID"
wSvc.State.Channel = newWifiSettings.Channel
wSvc.State.WorkingMode = pb.WiFiWorkingMode_STA
return nil
}
@ -281,14 +278,11 @@ func (wSvc *WiFiService) runAPMode(newWifiSettings *pb.WiFiSettings) (err error)
//start hostapd
err = wSvc.StartHostapd()
if err != nil {
wSvc.State.WorkingMode = pb.WiFiWorkingMode_UNKNOWN
return err
}
// update Connection wSvc
wSvc.State.Bss.SSID = newWifiSettings.Ap_BSS.SSID
wSvc.State.Channel = newWifiSettings.Channel
wSvc.State.WorkingMode = pb.WiFiWorkingMode_AP
time.Sleep(2 * time.Second) // ToDo: replace by output monitor, waiting till hostapd is up
return nil
}
@ -299,8 +293,6 @@ func (wSvc *WiFiService) DeploySettings(newWifiSettings *pb.WiFiSettings) (wstat
wSvc.mutexSettings.Lock()
defer wSvc.mutexSettings.Unlock()
// Reset wSvc to unknown, if something goes wrong, there's no wpa_supplicant or hostapd
wSvc.State.WorkingMode = pb.WiFiWorkingMode_UNKNOWN
//ToDo: Dis/Enable nexmon if needed
@ -366,6 +358,14 @@ func (wSvc *WiFiService) DeploySettings(newWifiSettings *pb.WiFiSettings) (wstat
// update settings (wSvc is updated by runAPMode/runStaMode)
wSvc.State.CurrentSettings = newWifiSettings
// update rest of state
if newState,serr := wSvc.RetrieveIwState(); serr == nil {
wSvc.State.Ssid = newState.Ssid
wSvc.State.Mode = newState.Mode
wSvc.State.Channel = newState.Channel
} else {
log.Println("Couldn't retrieve new Interface state:", serr)
}
return wSvc.State, nil
}
@ -405,8 +405,9 @@ func NewWifiService() (res *WiFiService) {
// Initial settings and state on service start
res.State = &pb.WiFiState{
WorkingMode: pb.WiFiWorkingMode_UNKNOWN,
Bss: &pb.WiFiBSSCfg{},
Mode: pb.WiFiStateMode_STA_NOT_CONNECTED,
Channel: 0,
Ssid: "",
}
res.State.CurrentSettings = &pb.WiFiSettings{
@ -442,6 +443,7 @@ func (m *wpaSupplicantOutMonitor) Write(p []byte) (n int, err error) {
m.result = false
m.resultReceived.Set()
case strings.Contains(line, "CTRL-EVENT-CONNECTED"):
// CTRL-EVENT-CONNECTED - Connection to 4e:66:41:a0:5b:35 completed
log.Printf("Connected to target network\n")
m.Lock()
defer m.Unlock()
@ -708,6 +710,110 @@ func ParseIwScan(scanresult string) (bsslist []BSS, err error) {
}
return bsslist, nil
}//ToDo: Create netlink based implementation (not relying on 'iw'): low priority
func (wsvc WiFiService) RetrieveIwState() (state *pb.WiFiState, err error) {
proc := exec.Command("/sbin/iw", "dev", wsvc.IfaceName, "info")
res, err := proc.CombinedOutput()
if err != nil {
return nil, errors.New(fmt.Sprintf("Error fetching wifi info: '%s'\niw output: %s", err, res))
}
/*
AP
--
Interface wlan0
ifindex 2
wdev 0x1
addr b8:27:eb:71:bb:bc
ssid \xf0\x9f\x92\xa5\xf0\x9f\x96\xa5\xf0\x9f\x92\xa5 \xe2\x93\x85\xe2\x9e\x83\xe2\x93\x8c\xe2\x93\x83\xf0\x9f\x85\x9f\xe2\x9d\xb6
type AP
wiphy 0
channel 2 (2417 MHz), width: 20 MHz, center1: 2417 MHz
txpower 31.00 dBm
NOT CONNECTED
-------------
Interface wlan0
ifindex 2
wdev 0x1
addr b8:27:eb:71:bb:bc
type managed
wiphy 0
channel 2 (2417 MHz), width: 20 MHz, center1: 2417 MHz
txpower 31.00 dBm
CONNECTED
-----------
Interface wlan0
ifindex 2
wdev 0x1
addr b8:27:eb:71:bb:bc
ssid WLAN-579086
type managed
wiphy 0
channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz
txpower 31.00 dBm
*/
output := string(res)
//split into BSS sections
reSsid := regexp.MustCompile("(?m)ssid (.*)\n")
reMode := regexp.MustCompile("(?m)type (.*)\n")
reChannel := regexp.MustCompile("(?m)channel ([0-9]+) .*\n")
strSsid_sub := reSsid.FindStringSubmatch(output)
strSsid := ""
if len(strSsid_sub) > 1 {
unSsid,uerr := strconv.Unquote(fmt.Sprintf("\"%s\"", strSsid_sub[1]))
if uerr == nil {
strSsid = unSsid
} else {
fmt.Println("Unquote error", uerr)
}
}
// fmt.Printf("SSID: %s\n", strSsid)
strChannel_sub := reChannel.FindStringSubmatch(output)
strChannel := "0"
if len(strChannel_sub) > 1 {
strChannel = strChannel_sub[1]
}
// fmt.Printf("Channel: %s\n", strChannel)
strMode_sub := reMode.FindStringSubmatch(output)
strMode := "0"
if len(strMode_sub) > 1 {
strMode = strMode_sub[1]
}
// fmt.Printf("Mode: %s\n", strMode)
state = &pb.WiFiState{}
switch strings.ToLower(strMode) {
case "ap":
state.Mode = pb.WiFiStateMode_AP_UP
default:
state.Mode = pb.WiFiStateMode_STA_NOT_CONNECTED
}
if len(strSsid) > 0 {
state.Ssid = strSsid
if state.Mode == pb.WiFiStateMode_STA_NOT_CONNECTED {
state.Mode = pb.WiFiStateMode_STA_CONNECTED // when a SSID is present, the wifi interface is conected to an AP
}
}
intCh := 0
intCh,_ = strconv.Atoi(strChannel)
state.Channel = uint32(intCh)
return state, nil
}
func wifiSetReg(reg string) (err error) {

View File

@ -4,7 +4,7 @@ package main
import (
"github.com/gopherjs/gopherjs/js"
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
)
type CompEthernetAddressesData2 struct {

View File

@ -3,7 +3,7 @@
package main
import (
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
"github.com/mame82/P4wnP1_go/common_web"
"github.com/gopherjs/gopherjs/js"
)

View File

@ -4,7 +4,7 @@ package main
import (
"github.com/gopherjs/gopherjs/js"
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
)
type CompHIDJobsData struct {

View File

@ -4,7 +4,7 @@ package main
import (
"github.com/gopherjs/gopherjs/js"
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
"strconv"
)

View File

@ -3,7 +3,7 @@
package main
import (
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
)
func LogLevelClass(vm *hvue.VM, level int) string {

View File

@ -3,7 +3,7 @@
package main
import (
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
)
/*

View File

@ -4,7 +4,7 @@ package main
import (
"github.com/gopherjs/gopherjs/js"
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
)
type CompStateData struct {

View File

@ -4,7 +4,7 @@ package main
import (
"github.com/gopherjs/gopherjs/js"
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
)
type CompToggleSwitchData struct {

View File

@ -4,7 +4,7 @@ package main
import (
"github.com/gopherjs/gopherjs/js"
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
)

View File

@ -3,7 +3,7 @@
package main
import (
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
"github.com/gopherjs/gopherjs/js"
pb "github.com/mame82/P4wnP1_go/proto/gopherjs"
)

View File

@ -3,11 +3,11 @@
package main
import (
//"github.com/HuckRidgeSW/hvue"
//"github.com/mame82/hvue"
"github.com/gopherjs/gopherjs/js"
pb "github.com/mame82/P4wnP1_go/proto/gopherjs"
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
)
type jsDataTablePagination struct {

View File

@ -8,7 +8,7 @@ import (
"errors"
"github.com/mame82/P4wnP1_go/common_web"
"strconv"
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
)
var eNoLogEvent = errors.New("No log event")
@ -23,26 +23,26 @@ type jsGadgetSettings struct {
Pid string `js:"Pid"`
Manufacturer string `js:"Manufacturer"`
Product string `js:"Product"`
Serial string `js:"Serial"`
Use_CDC_ECM bool `js:"Use_CDC_ECM"`
Use_RNDIS bool `js:"Use_RNDIS"`
Use_HID_KEYBOARD bool `js:"Use_HID_KEYBOARD"`
Use_HID_MOUSE bool `js:"Use_HID_MOUSE"`
Use_HID_RAW bool `js:"Use_HID_RAW"`
Use_UMS bool `js:"Use_UMS"`
Use_SERIAL bool `js:"Use_SERIAL"`
RndisSettings *VGadgetSettingsEthernet `js:"RndisSettings"`
CdcEcmSettings *VGadgetSettingsEthernet `js:"CdcEcmSettings"`
UmsSettings *VGadgetSettingsUMS `js:"UmsSettings"`
Serial string `js:"Serial"`
Use_CDC_ECM bool `js:"Use_CDC_ECM"`
Use_RNDIS bool `js:"Use_RNDIS"`
Use_HID_KEYBOARD bool `js:"Use_HID_KEYBOARD"`
Use_HID_MOUSE bool `js:"Use_HID_MOUSE"`
Use_HID_RAW bool `js:"Use_HID_RAW"`
Use_UMS bool `js:"Use_UMS"`
Use_SERIAL bool `js:"Use_SERIAL"`
RndisSettings *jsGadgetSettingsEthernet `js:"RndisSettings"`
CdcEcmSettings *jsGadgetSettingsEthernet `js:"CdcEcmSettings"`
UmsSettings *jsGadgetSettingsUMS `js:"UmsSettings"`
}
type VGadgetSettingsEthernet struct {
type jsGadgetSettingsEthernet struct {
*js.Object
HostAddr string `js:"HostAddr"`
DevAddr string `js:"DevAddr"`
}
type VGadgetSettingsUMS struct {
type jsGadgetSettingsUMS struct {
*js.Object
Cdrom bool `js:"Cdrom"`
File string `js:"File"`
@ -95,7 +95,7 @@ func (jsGS *jsGadgetSettings) fromGS(gs *pb.GadgetSettings) {
jsGS.Use_UMS = gs.Use_UMS
jsGS.Use_SERIAL = gs.Use_SERIAL
jsGS.RndisSettings = &VGadgetSettingsEthernet{
jsGS.RndisSettings = &jsGadgetSettingsEthernet{
Object: O(),
}
if gs.RndisSettings != nil {
@ -103,7 +103,7 @@ func (jsGS *jsGadgetSettings) fromGS(gs *pb.GadgetSettings) {
jsGS.RndisSettings.DevAddr = gs.RndisSettings.DevAddr
}
jsGS.CdcEcmSettings = &VGadgetSettingsEthernet{
jsGS.CdcEcmSettings = &jsGadgetSettingsEthernet{
Object: O(),
}
if gs.CdcEcmSettings != nil {
@ -111,7 +111,7 @@ func (jsGS *jsGadgetSettings) fromGS(gs *pb.GadgetSettings) {
jsGS.CdcEcmSettings.DevAddr = gs.CdcEcmSettings.DevAddr
}
jsGS.UmsSettings = &VGadgetSettingsUMS{
jsGS.UmsSettings = &jsGadgetSettingsUMS{
Object: O(),
}
if gs.UmsSettings != nil {
@ -364,36 +364,22 @@ func (jl *jsHidJobStateList) DeleteEntry(id int64) {
type jsWiFiConnectionState struct {
*js.Object
Mode int `js:"mode"`
AuthMode int `js:"authMode"`
Channel uint32 `js:"channel"`
BSSCfg *jsWiFiBSSCfg `js:"bss"`
Ssid string `js:"ssid"`
}
func (target *jsWiFiConnectionState) fromGo(src *pb.WiFiState) {
target.Mode = int(src.WorkingMode)
target.AuthMode = int(src.AuthMode)
target.Mode = int(src.Mode)
target.Channel = src.Channel
target.BSSCfg = &jsWiFiBSSCfg{Object:O()}
if src.Bss == nil {
target.BSSCfg.PSK = ""
target.BSSCfg.SSID = ""
} else {
target.BSSCfg.PSK = src.Bss.PSK
target.BSSCfg.SSID = src.Bss.SSID
}
target.Ssid = src.Ssid
return
}
func (src *jsWiFiConnectionState) toGo() (target *pb.WiFiState) {
target = &pb.WiFiState{
Channel: src.Channel,
WorkingMode: pb.WiFiWorkingMode(src.Mode),
AuthMode: pb.WiFiAuthMode(src.AuthMode),
Bss: &pb.WiFiBSSCfg{
SSID: src.BSSCfg.SSID,
PSK: src.BSSCfg.PSK,
},
Mode: pb.WiFiStateMode(src.Mode),
Ssid: src.Ssid,
}
return
@ -401,10 +387,12 @@ func (src *jsWiFiConnectionState) toGo() (target *pb.WiFiState) {
func (src jsWiFiConnectionState) ModeString() (strMode string) {
switch src.Mode {
case 1:
case int(pb.WiFiStateMode_STA_NOT_CONNECTED):
return "Not connected"
case int(pb.WiFiStateMode_AP_UP):
return "Access Point"
case 2:
return "Station"
case int(pb.WiFiStateMode_STA_CONNECTED):
return "Connected"
default:
return "UNKNOWN"
@ -414,12 +402,8 @@ func (src jsWiFiConnectionState) ModeString() (strMode string) {
func NewWiFiConnectionState() *jsWiFiConnectionState {
res := &jsWiFiConnectionState{Object: O()}
res.Channel = 0
res.Mode = int(pb.WiFiWorkingMode_UNKNOWN)
res.AuthMode = int(pb.WiFiAuthMode_OPEN)
res.BSSCfg = &jsWiFiBSSCfg{Object:O()}
res.BSSCfg.PSK = ""
res.BSSCfg.SSID = ""
res.Mode = int(pb.WiFiStateMode_STA_NOT_CONNECTED)
res.Ssid = ""
return res
}

View File

@ -5,7 +5,7 @@ package main
import (
// "honnef.co/go/js/dom"
"github.com/gopherjs/gopherjs/js"
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
"time"
"github.com/mame82/mvuex"
)

View File

@ -2,7 +2,7 @@ package main
import (
"github.com/gopherjs/gopherjs/js"
"github.com/HuckRidgeSW/hvue"
"github.com/mame82/hvue"
)