12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package main
- import (
- "fmt"
- "time"
- "github.com/openatx/androidutils"
- )
- type CpuInfo struct {
- Cores int `json:"cores"`
- Hardware string `json:"hardware"`
- }
- type MemoryInfo struct {
- Total int `json:"total"` // unit kB
- Around string `json:"around,omitempty"`
- }
- type OwnerInfo struct {
- IP string `json:"ip"`
- }
- type DeviceInfo struct {
- Udid string `json:"udid,omitempty"` // Unique device identifier
- PropertyId string `json:"propertyId,omitempty"` // For device managerment, eg: HIH-PHO-1122
- Version string `json:"version,omitempty"` // ro.build.version.release
- Serial string `json:"serial,omitempty"` // ro.serialno
- Brand string `json:"brand,omitempty"` // ro.product.brand
- Model string `json:"model,omitempty"` // ro.product.model
- HWAddr string `json:"hwaddr,omitempty"` // persist.sys.wifi.mac
- Notes string `json:"notes,omitempty"` // device notes
- IP string `json:"ip,omitempty"`
- Port int `json:"port,omitempty"`
- ReverseProxyAddr string `json:"reverseProxyAddr,omitempty"`
- ReverseProxyServerAddr string `json:"reverseProxyServerAddr,omitempty"`
- Sdk int `json:"sdk,omitempty"`
- AgentVersion string `json:"agentVersion,omitempty"`
- Display *androidutils.Display `json:"display,omitempty"`
- Battery *androidutils.Battery `json:"battery,omitempty"`
- Memory *MemoryInfo `json:"memory,omitempty"` // proc/meminfo
- Cpu *CpuInfo `json:"cpu,omitempty"` // proc/cpuinfo
- Arch string `json:"arch"`
- Owner *OwnerInfo `json:"owner" gorethink:"owner,omitempty"`
- Reserved string `json:"reserved,omitempty"`
- ConnectionCount int `json:"-"` // > 1 happended when phone redial server
- CreatedAt time.Time `json:"-" gorethink:"createdAt,omitempty"`
- PresenceChangedAt time.Time `json:"presenceChangedAt,omitempty"`
- UsingBeganAt time.Time `json:"usingBeganAt,omitempty" gorethink:"usingBeganAt,omitempty"`
- Ready *bool `json:"ready,omitempty"`
- Present *bool `json:"present,omitempty"`
- Using *bool `json:"using,omitempty"`
- Product *Product `json:"product" gorethink:"product_id,reference,omitempty" gorethink_ref:"id"`
- Provider *Provider `json:"provider" gorethink:"provider_id,reference,omitempty" gorethink_ref:"id"`
- // only works when there is provider
- ProviderForwardedPort int `json:"providerForwardedPort,omitempty"`
- // used for provider to known agent server url
- ServerURL string `json:"serverUrl,omitempty"`
- }
- // "Brand Model Memory CPU" together can define a phone
- type Product struct {
- Id string `json:"id" gorethink:"id,omitempty"`
- Name string `json:"name" gorethink:"name,omitempty"`
- Brand string `json:"brand" gorethink:"brand,omitempty"`
- Model string `json:"model" gorethink:"model,omitempty"`
- Memory string `json:"memory,omitempty"` // eg: 4GB
- Cpu string `json:"cpu,omitempty"`
- Coverage float32 `json:"coverage" gorethink:"coverage,omitempty"`
- Gpu string `json:"gpu,omitempty"`
- Link string `json:"link,omitempty"` // Outside link
- // AntutuScore int `json:"antutuScore,omitempty"`
- }
- // u2init
- type Provider struct {
- Id string `json:"id" gorethink:"id,omitempty"` // machine id
- IP string `json:"ip" gorethink:"ip,omitempty"`
- Port int `json:"port" gorethink:"port,omitempty"`
- Present *bool `json:"present,omitempty"`
- Notes string `json:"notes" gorethink:"notes,omitempty"`
- Devices []DeviceInfo `json:"devices" gorethink:"devices,omitempty"`
- CreatedAt time.Time `json:"createdAt,omitempty"`
- PresenceChangedAt time.Time `json:"presenceChangedAt,omitempty"`
- }
- // Addr combined with ip:port
- func (p *Provider) Addr() string {
- return fmt.Sprintf("%s:%d", p.IP, p.Port)
- }
|