# Function Test
###### tags: `Check Point 初始版`
/home/puzzle#cat service.sh

/home/puzzle#cat work.sh

cp work.sh brian.sh

**CPU**
#cat /proc/cpuinfo | grep -c processor
#4 ==>core
#stress-ng --cpu {core} --timeout {10}s -l {60}
CPU_temp
RAM_temp
CPU_internal_temp
**CPU internal temp**
#cat /sys/class/thermal/thermal_zone1/temp
**RAM**
#cat /proc/cpuinfo | grep -c processor
#4 ==>core
#stress-ng --vm {core} --vm-bytes {250}m -t {10}s
CPU_temp
RAM_temp
CPU_internal_temp
**eMMC**
判斷emmc生命週期並顯示Manufacturer ID and Product Name

0x01 = PASS , else = Fail
#cat /sys/devices/platform/cp0/cp0:config-space/f2780000.sdhci/mmc_host/mmc1/mmc1:0001/manfid
#cat /sys/devices/platform/cp0/cp0:config-space/f2780000.sdhci/mmc_host/mmc1/mmc1:0001/name
#cat /sys/devices/platform/cp0/cp0:config-space/f2780000.sdhci/mmc_host/mmc1/mmc1:0001/life_time
驗證fail,修改eMMC.py的0x01或者找一台eMMC已經使用多時的.
**Voltage**

三種結果 Success、Monitor Over Range、Monitor Fail/ERROR(沒有讀到值 小於0時)
V1
3.3V
3.15 <= fv33 <= 3.45
V0 #cat /sys/bus/i2c/devices/0-0028/hwmon/hwmon*/in1_input
V1 #cat /sys/bus/i2c/devices/0-002b/hwmon/hwmon*/in1_input
1526(值)/1000/0.454545455 = 3.3571
12V
11.4 <= fv12 <= 12.6
V0 #cat /sys/bus/i2c/devices/0-0028/hwmon/hwmon*/in4_input
V1 #cat /sys/bus/i2c/devices/0-002b/hwmon/hwmon*/in4_input
1670(值)/1000/0.135446686 = 12.3295
1.8V (HW 1V2 Monitor)
1.14 <= fv18 <= 1.26
V0 #cat /sys/bus/i2c/devices/0-0029/hwmon/hwmon*/in2_input
V1 #cat /sys/bus/i2c/devices/0-002d/hwmon/hwmon*/in2_input
1004(值) /1000/0.831541 = 1.2073
0.9V (1V2_RM_Monitor)
1.14 <= fv9 <= 1.26
V0 #cat /sys/bus/i2c/devices/0-0029/hwmon/hwmon*/in1_input
V1 #cat /sys/bus/i2c/devices/0-002d/hwmon/hwmon*/in1_input
1014(值)/1000/0.8315412 = 1.2194
1.2Va (HW 0V9)
0.81 <= fv12a <= 1.1
V0 #cat /sys/bus/i2c/devices/0-0029/hwmon/hwmon*/in3_input
V1 #cat /sys/bus/i2c/devices/0-002d/hwmon/hwmon*/in3_input
702(值)/1000/0.666666667 = 1.0529
1.2Vb (HW 1V8)
1.7 <= fv12b <= 1.9
V0 #cat /sys/bus/i2c/devices/0-0029/hwmon/hwmon*/in4_input
V1 #cat /sys/bus/i2c/devices/0-002d/hwmon/hwmon*/in4_input
916(值)/1000/0.5 = 1.832
**Temparature**


CPU
V0 #cat /sys/bus/i2c/devices/0-0028/hwmon/hwmon1/in3_input
V1 #cat /sys/bus/i2c/devices/0-002b/hwmon/hwmon2/in3_input //不確定
RAM
V0 #cat /sys/bus/i2c/devices/0-0028/hwmon/hwmon1/in2_input
V1 #cat /sys/bus/i2c/devices/0-002b/hwmon/hwmon2/in2_input //不確定
**FAN V2 V3**
echo 250 > /sys/class/hwmon/hwmon0/pwm3 (V3_CPU_FAN1)
echo 250 > /sys/class/hwmon/hwmon2/pwm1 (V3_CPU_FAN2)
echo 250 > /sys/class/hwmon/hwmon0/pwm1 (V3_FAN1)
echo 250 > /sys/class/hwmon/hwmon0/pwm2
**USB1/USB2**
對外部隨身碟做讀寫
**DEVICEBTN**
Press factory default key
time out 30sec
keep 0.5sec
**MAC**
與MES mac info比對與機器mac是否相同



FAIL msg

改MAC讓結果FAIL(FT1 Setup Device-Verify MAC/Write MAC and MES Device Info也可以用此方式驗證)
V1
uboot
Marvell>>setenv ethaddr aa:bb:cc:dd:ee:00
Marvell>>setenv eth1addr aa:bb:cc:dd:ee:01
Marvell>>setenv eth2addr aa:bb:cc:dd:ee:02
Marvell>>saveenv
Marvell>>reset
**Write MAC**
Check local PC Blob File
**Write VPD**
#cat /tmp/.vpd.txt

/etc/puzzle/vpd#./vpd "0:7" //0:0~0:7
Use Postman app
Read device info

>>> http://192.168.0.36:8882/deviceInfo
```
{
"config":{
"name":[0,1,2]
},
"device":{
"name":[0,1,2]
}
}
```
Write device info

>>> http://192.168.0.36:8882/deviceAgent
```
{
"config": [
{
"data": {
"lan": 0,
"lcm": 0,
"mainslot": "mvpp2",
"modelName": "BaseHW-SG-V1",
"plumslots": [],
"ssd": 0,
"usb": 1
},
"name": 2
}
],
"device": [
{
"data": {
"boardManufacturer": "DQV TEST.",
"productSerialNumber": "WA122345661"
},
"name": 2
}
]
}
```
**Write Config**
#cat /home/puzzle/deviceAgentAPI/config/config.json

#rm config.json
/home/puzzle/#bash serice.sh restart //會先產生空的config.json
#cat /home/puzzle/deviceAgentAPI/config/config.json
然後再按下"Write Config" //重新寫入default
#cat /home/puzzle/deviceAgentAPI/config/config.json
**EEPROM**


/home/puzzle/deviceAgentAPI/hwUnit# vi init_define.py

step1 Check vpd tool
step2 Check vpd manufacture
/etc/puzzle/vpd#./vpd 0:2
step3 write vpd manufacture
/etc/puzzle/vpd#./vpd 0:2 ""
step4 read vpd manufacture
/etc/puzzle/vpd#./vpd 0:2
**SNCHECK**
機器與VPD server比對Serial Number
**LAN**
判斷指定的LAN port是否有抓到IP
V0 : eth1

V1 : lan1

**USBPower**
透過GPIO確認USB開跟關閉都正常
"usb" : "sda"
V0 "gpio" mapping 56
V0 "gpio" mapping 480
echo 0 > /sys/class/gpio/gpio{}/value
cat /sys/class/gpio/gpio{}/value
lsblk | grep sda
echo 1 > /sys/class/gpio/gpio{}/value
cat /sys/class/gpio/gpio{}/value
lsblk | grep sda
**RTCSYNC**
將edge server的Local time and RTC time寫入到device端,然後再比對Local time and RTC time是否相同
edge server端
#timedatectl

測試方式可以先手動修改edge server time
step1 #sudo timedatectl set-ntp no && sudo date -s '2019-08-02T08:32:48.000Z' && sudo hwclock -w
step2 /home/puzzle/devHealthCheckClient/functionUnit#vi rtc_para.py
cmd=“sudo timedatectl set-ntp no && sudo date -s ‘{}’”.format(myDate) //增加"關閉網路時間同步並移除hwclock寫入
step3 bash /home/puzzle/service.sh restart
#timedatectl set-ntp yes //開啓網絡時間同步(恢復正確時間)
#hwclock --systohc //HW時間設定成跟Local時間一樣
device端(判斷時間是否相同)
ROBO 3T
改搜尋最新的在最前面
db.getCollection('report').find({}).sort({"date" : -1})
搜尋operationId
db.getCollection('report').find({"operationId" : "9bdc26d9-3cb8-4284-8aa3-a5feaaf83519"})