update Home PC 22 May 2026
This commit is contained in:
@@ -9,6 +9,10 @@ USB Audio Device IN 4 = 1
|
||||
[Output]
|
||||
Speakers (USB PnP Audio Device) L = 0.920000
|
||||
Speakers (USB PnP Audio Device) R = 0.920000
|
||||
USB Audio Device Analogue 1 = 2.47
|
||||
USB Audio Device Analogue 2 = 2.47
|
||||
USB Audio Device Analogue 3 = 2.47
|
||||
USB Audio Device Analogue 4 = 2.47
|
||||
|
||||
[Amp]
|
||||
Speakers (USB PnP Audio Device) - Amp L = 14.904000
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -3,16 +3,34 @@ Microphone (USB PnP Audio Device) L = 1.07
|
||||
Microphone (USB PnP Audio Device) R = 1.07
|
||||
Microphone (3- USB PnP Audio Device) L = 1.028740
|
||||
Microphone (3- USB PnP Audio Device) R = 1.034020
|
||||
USB Audio Device IN 1 = 0.0004
|
||||
USB Audio Device IN 2 = 0.0004
|
||||
USB Audio Device IN 3 = 0.0004
|
||||
USB Audio Device IN 4 = 0.0004
|
||||
USB Audio Device IN 5 = 0.0004
|
||||
USB Audio Device IN 6 = 0.0004
|
||||
USB Audio Device IN 7 = 0.0004
|
||||
USB Audio Device IN 8 = 0.0004
|
||||
|
||||
[Output]
|
||||
Speakers (USB PnP Audio Device) L = 0.920000
|
||||
Speakers (USB PnP Audio Device) R = 0.920000
|
||||
Speakers (USB Advanced Audio Device) L = 0.920000
|
||||
Speakers (USB Advanced Audio Device) R = 0.920000
|
||||
Speakers (3- USB PnP Audio Device) L = 0.920000
|
||||
Speakers (3- USB PnP Audio Device) R = 0.920000
|
||||
USB Audio Device Analogue 1 = 0.400000
|
||||
USB Audio Device Analogue 2 = 0.400000
|
||||
USB Audio Device Analogue 3 = 0.400000
|
||||
USB Audio Device Analogue 4 = 0.400000
|
||||
USB Audio Device Analogue 5 = 0.400000
|
||||
USB Audio Device Analogue 6 = 0.400000
|
||||
USB Audio Device Analogue 7 = 0.400000
|
||||
USB Audio Device Analogue 8 = 0.400000
|
||||
|
||||
[Amp]
|
||||
Speakers (USB PnP Audio Device) - Amp L = 14.904000
|
||||
Speakers (USB PnP Audio Device) - Amp R = 14.959200
|
||||
Speakers (USB PnP Audio Device) - Amp R = 14.959200
|
||||
|
||||
[Mic]
|
||||
Microphone (USB PnP Audio Device) - Mic L = 0.004823
|
||||
|
||||
BIN
Acoustics Test/builds/Calibration/Signal Generator - Copy.exe
Normal file
BIN
Acoustics Test/builds/Calibration/Signal Generator - Copy.exe
Normal file
Binary file not shown.
BIN
Acoustics Test/builds/Calibration/Signal Measure - 2.exe
Normal file
BIN
Acoustics Test/builds/Calibration/Signal Measure - 2.exe
Normal file
Binary file not shown.
BIN
Acoustics Test/builds/Calibration/Signal Measure - 3.exe
Normal file
BIN
Acoustics Test/builds/Calibration/Signal Measure - 3.exe
Normal file
Binary file not shown.
BIN
Acoustics Test/builds/Calibration/Signal Measure - 4.exe
Normal file
BIN
Acoustics Test/builds/Calibration/Signal Measure - 4.exe
Normal file
Binary file not shown.
@@ -9,10 +9,14 @@ Speakers (USB PnP Audio Device) L = 0.920000
|
||||
Speakers (USB PnP Audio Device) R = 0.920000
|
||||
Speakers (3- USB PnP Audio Device) L = 0.920000
|
||||
Speakers (3- USB PnP Audio Device) R = 0.920000
|
||||
USB Audio Device Analogue 1 = 2.47
|
||||
USB Audio Device Analogue 2 = 2.47
|
||||
USB Audio Device Analogue 3 = 2.47
|
||||
USB Audio Device Analogue 4 = 2.47
|
||||
|
||||
[Amp]
|
||||
Speakers (USB PnP Audio Device) - Amp L = 14.904000
|
||||
Speakers (USB PnP Audio Device) - Amp R = 14.959200
|
||||
Speakers (USB PnP Audio Device) - Amp R = 14.959200
|
||||
|
||||
[Mic]
|
||||
Microphone (USB PnP Audio Device) - Mic L = 0.004823
|
||||
|
||||
Binary file not shown.
431
Acoustics Test/raspberry Pi Pico/main.py
Normal file
431
Acoustics Test/raspberry Pi Pico/main.py
Normal file
@@ -0,0 +1,431 @@
|
||||
import sys, machine, time, json
|
||||
import binascii
|
||||
|
||||
config = {'type': 'undefined', 'no': 'undefined', 'count': 0}
|
||||
config_file = "config.json"
|
||||
|
||||
##########################################################
|
||||
command_info = [
|
||||
{ "cmd": "ping", "descript": "return OK if mico controller board works normal" },
|
||||
{ "cmd": "reset", "descript": "reboot mico controller board" },
|
||||
{ "cmd": "get_config", "descript": "read configuration from mico controller board",
|
||||
"parameters": [
|
||||
{ "config_item_name": "config item to read, if not provide will return all config values" }
|
||||
],
|
||||
"example": "> get_config count\n < 0\n > get_config\n < {'no': 'undefined', 'type': 'undefined', 'count': 0}"
|
||||
},
|
||||
{ "cmd": "set_config", "descript": "set configuration to mico controller board",
|
||||
"parameters": [
|
||||
{ "config_item_name": "config item name" },
|
||||
{ "config_item_value": "config item value " }
|
||||
],
|
||||
"example": ">set_config sn 'CONTROLLER-001'"
|
||||
},
|
||||
{ "cmd": "gpio_init", "descript": "initial gpio pin",
|
||||
"parameters": [
|
||||
{ "pin_num": "gpio pin number" },
|
||||
{ "gpio direction": "0 - input, 1 - output" },
|
||||
{ "initial status": "initial status of gpio pin, 0 - low, 1 - high" },
|
||||
{ "pull control": "UP - enable pull up, DOWN - enable pull down, others - disable pull function"}
|
||||
],
|
||||
"example": ">gpio_init 1 1 1 UP"
|
||||
},
|
||||
{ "cmd": "gpio_set", "descript": "set gpio pin status",
|
||||
"parameters": [
|
||||
{ "pin_num": "gpio pin number" },
|
||||
{ "pin status": "initial status of gpio pin, 0 - low, 1 - high" }
|
||||
],
|
||||
"example": ">gpio_set 1 0"
|
||||
},
|
||||
{ "cmd": "gpio_get", "descript": "get gpio pin status",
|
||||
"parameters": [
|
||||
{ "pin_num": "gpio pin number" }
|
||||
],
|
||||
"example": ">gpio_get 1"
|
||||
},
|
||||
{ "cmd": "i2c_cleanup", "descript": "release i2c bus" },
|
||||
{ "cmd": "i2c_scan", "descript": "scan i2c devices" },
|
||||
{ "cmd": "i2c_read", "descript": "perform read operation from i2c device",
|
||||
"parameters": [
|
||||
{ "device": "i2c slave device address" },
|
||||
{ "length": "bytes to read" }
|
||||
],
|
||||
"example": ">i2c_read 0x20 1\n <succeed: 0xFF"
|
||||
},
|
||||
{ "cmd": "i2c_read_add", "descript": "perform read operation from i2c device with register address",
|
||||
"parameters": [
|
||||
{ "device": "i2c slave device address" },
|
||||
{ "addr": "register address" },
|
||||
{ "length": "bytes to read" }
|
||||
],
|
||||
"example": ">i2c_read_add 0x20 0 2\n <succeed: 0xFF 0x01"
|
||||
},
|
||||
{ "cmd": "i2c_write", "descript": "perform write operation to i2c device ",
|
||||
"parameters": [
|
||||
{ "device": "i2c slave device address" },
|
||||
{ "data": "bytes to write" }
|
||||
],
|
||||
"example": ">i2c_write 0x20 0x01 0x02 0x03 ... 0x10"
|
||||
},
|
||||
{ "cmd": "i2c_write_add", "descript": "perform write operation to i2c device with register address",
|
||||
"parameters": [
|
||||
{ "device": "i2c slave device address" },
|
||||
{ "addr": "register address" },
|
||||
{ "data": "bytes to write" }
|
||||
],
|
||||
"example": ">i2c_write 0x20 0x12 0x01 0x02 0x03 ... 0x10"
|
||||
},
|
||||
{ "cmd": "spi_setup", "descript": "initial spi bus",
|
||||
"parameters": [
|
||||
{ "clk_freq": "ispi clock frequence" },
|
||||
{ "sck_pin": "sck pin io number" },
|
||||
{ "mosi_pin": "mosi pin io number" },
|
||||
{ "miso_pin": "miso pin io number" },
|
||||
{ "cs_pin": "cs pin io number, -1 if don't want spi controller toggle cs pin" },
|
||||
{ "polarity": "polarity setting for spi bus" },
|
||||
{ "phase": "phase setting for spi bus" }
|
||||
],
|
||||
"example": ">spi_setup 100000 2 3 0 1 0 1"
|
||||
},
|
||||
{ "cmd": "spi_cleanup", "descript": "release spi bus" },
|
||||
{ "cmd": "spi_read", "descript": "perform read operation from spi device",
|
||||
"parameters": [
|
||||
{ "length": "bytes to read" }
|
||||
],
|
||||
"example": ">spi_read 3\n <succeed: 0xFF 0xAA 0xBB"
|
||||
},
|
||||
{ "cmd": "spi_write", "descript": "perform write operation to spi device ",
|
||||
"parameters": [
|
||||
{ "data": "bytes to write" }
|
||||
],
|
||||
"example": ">spi_write 0x01 0x02 0x03 ... 0x10"
|
||||
},
|
||||
{ "cmd": "spi_write_read", "descript": "perform write and then read to spi device ",
|
||||
"parameters": [
|
||||
{ "length": "bytes to read" },
|
||||
{ "data": "bytes to write" }
|
||||
],
|
||||
"example": ">spi_write_read 3 0x01 0x02 0x03 ... 0x10\n <succeed: 0xFF 0xAA 0xBB"
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
##########################################################
|
||||
def load_config():
|
||||
global config
|
||||
|
||||
try:
|
||||
f = open(config_file,'r')
|
||||
config = json.load(f)
|
||||
f.close()
|
||||
except:
|
||||
print('config file not exist, load default settings!')
|
||||
save_config()
|
||||
|
||||
def save_config():
|
||||
f = open(config_file,'w')
|
||||
json.dump(config, f)
|
||||
f.close()
|
||||
|
||||
def bytes_to_str(bytes):
|
||||
return ",".join([f"0x{b:02x}" for b in bytes])
|
||||
|
||||
def str_to_int(str):
|
||||
if str.startswith("0x"):
|
||||
return int(str, 16)
|
||||
else:
|
||||
return int(str, 10)
|
||||
|
||||
def print_help():
|
||||
for command in command_info:
|
||||
print(f"{command['cmd']} - {command['descript']}")
|
||||
if 'parameters' in command.keys():
|
||||
print(' parameters:')
|
||||
for parameter in command['parameters']:
|
||||
parameter_name = list(parameter.keys())[0]
|
||||
print(f" {parameter_name}: {parameter[parameter_name]}")
|
||||
if 'example' in command.keys():
|
||||
print(' example:')
|
||||
print(f' {command['example']}')
|
||||
if 'parameters' in command.keys() or 'example' in command.keys():
|
||||
print('')
|
||||
|
||||
##########################################################
|
||||
|
||||
load_config()
|
||||
|
||||
i2c_controller = None
|
||||
spi_controller = None
|
||||
spi_cs_pin = None
|
||||
gpio_dict = {}
|
||||
|
||||
print('Sonos Micro Controller V1.0')
|
||||
print("PyLang", sys.version_info, ";", sys.implementation)
|
||||
print('=======================================')
|
||||
while True:
|
||||
input_string = str(input())
|
||||
args = input_string.split(" ")
|
||||
|
||||
if len(args) >= 1:
|
||||
if args[0] == 'help' or args[0] == '?':
|
||||
print_help()
|
||||
elif args[0] == 'ping': # check if command line is available
|
||||
print('OK')
|
||||
elif args[0] == 'reset':
|
||||
machine.reset()
|
||||
elif args[0] == 'get_config':
|
||||
print(config)
|
||||
elif args[0] == 'set_config':
|
||||
if args[1] != None and args[2] != None:
|
||||
config[args[1]] = args[2]
|
||||
save_config()
|
||||
else:
|
||||
print('invalid arguments for set command: ', input_string)
|
||||
|
||||
######################################################################
|
||||
## GPIO control commands
|
||||
######################################################################
|
||||
elif args[0] == 'gpio_init':
|
||||
# gpio_init 1 1 1 UP
|
||||
try:
|
||||
pin_num = str_to_int(args[1])
|
||||
pin_direction = machine.Pin.OUT if str_to_int(args[2]) == 1 else machine.Pin.IN
|
||||
init_status = str_to_int(args[3])
|
||||
pull_control = None
|
||||
if len(args) >= 5:
|
||||
if args[4].upper().strip() == 'UP':
|
||||
pull_control = machine.Pin.PULL_UP
|
||||
elif args[4].upper().strip() == 'DOWN':
|
||||
pull_control = machine.Pin.PULL_DOWN
|
||||
else:
|
||||
print('failed: invalid pull control ', args[4])
|
||||
gpio_dict[pin_num] = machine.Pin(pin_num, pin_direction, pull_control)
|
||||
if pin_direction == machine.Pin.OUT:
|
||||
gpio_dict[pin_num].value(init_status)
|
||||
print('succeed: ', gpio_dict[pin_num])
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
|
||||
elif args[0] == 'gpio_set':
|
||||
try:
|
||||
pin_num = str_to_int(args[1])
|
||||
pin_status = str_to_int(args[2])
|
||||
if pin_num in gpio_dict:
|
||||
gpio_dict[pin_num].value(pin_status)
|
||||
print('succeed: ')
|
||||
else:
|
||||
print(f'failed: pin not initialized - {pin_num}')
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
elif args[0] == 'gpio_get':
|
||||
try:
|
||||
pin_num = str_to_int(args[1])
|
||||
if pin_num in gpio_dict:
|
||||
print('succeed: ', gpio_dict[pin_num].value())
|
||||
else:
|
||||
print(f'failed: pin not initialized - {pin_num}')
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
######################################################################
|
||||
## I2C controller commands
|
||||
######################################################################
|
||||
elif args[0] == 'i2c_setup':
|
||||
# ====== i2c controller setup ======
|
||||
# PiPico: i2c_setup 100000 0 1 # 100000 - i2c clock frequence, 0 - sda pin io number, 1 - scl pin io number
|
||||
# ESP32: i2c_setup 100000 8 9 # 100000 - i2c clock frequence, 8 - sda pin io number, 9 - scl pin io number
|
||||
try:
|
||||
if i2c_controller is not None:
|
||||
i2c_controller = None
|
||||
clk_freq = str_to_int(args[1])
|
||||
sda_pin = str_to_int(args[2])
|
||||
scl_pin = str_to_int(args[3])
|
||||
i2c_controller = machine.I2C(0, sda=machine.Pin(sda_pin, machine.Pin.OPEN_DRAIN, machine.Pin.PULL_UP), scl=machine.Pin(scl_pin, machine.Pin.OUT, machine.Pin.PULL_UP), freq=clk_freq) # Frequency in Hz
|
||||
print('succeed: ', i2c_controller)
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
|
||||
elif args[0] == 'i2c_cleanup':
|
||||
# ====== i2c controller setup ======
|
||||
try:
|
||||
if i2c_controller is not None:
|
||||
i2c_controller = None
|
||||
print('succeed: ')
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
|
||||
elif args[0] == 'i2c_scan':
|
||||
# ====== scan I2C devices ======
|
||||
try:
|
||||
devices = i2c_controller.scan()
|
||||
if len(devices) == 0:
|
||||
print('failed: ', "no I2C devices found")
|
||||
else:
|
||||
print('succeed: ', bytes_to_str(devices))
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
|
||||
elif args[0] == 'i2c_read':
|
||||
# ====== i2c data read ======
|
||||
# i2c_read 0x20 1 # 0x20 - device_address, 1 - read length
|
||||
try:
|
||||
device = str_to_int(args[1])
|
||||
length = str_to_int(args[2])
|
||||
data = i2c_controller.readfrom(device, length)
|
||||
print('succeed: ', data.hex(','))
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
|
||||
elif args[0] == 'i2c_read_add':
|
||||
# ====== i2c data read address ======
|
||||
# i2c_read_add 0x20 0 2 # 0x20 - device_address, 0 - register address, 2 - read length
|
||||
try:
|
||||
device = str_to_int(args[1])
|
||||
addr = str_to_int(args[2])
|
||||
length = str_to_int(args[3])
|
||||
data = i2c_controller.readfrom_mem(device, addr, length)
|
||||
print('succeed: ', bytes_to_str(data))
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
|
||||
elif args[0] == 'i2c_write':
|
||||
# ====== i2c data write ======
|
||||
# i2c_write 0x20 0x01 0x02 0x03 ... 0x10 # 0x20 - device_address, 0x01 ~ 0x10 - data to write to device
|
||||
try:
|
||||
device = str_to_int(args[1])
|
||||
data = bytearray()
|
||||
for i in range(2, len(args)):
|
||||
data.append(str_to_int(args[i]))
|
||||
i2c_controller.writeto(device, data)
|
||||
print('succeed: ')
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
|
||||
elif args[0] == 'i2c_write_add':
|
||||
# ====== i2c data write address ======
|
||||
# i2c_write_add 0x20 0x12 0x01 0x02 0x03 ... 0x10 # 0x20 - device_address, 0x12 - register address, 0x01 ~ 0x10 - data to write to device
|
||||
try:
|
||||
device = str_to_int(args[1])
|
||||
addr = str_to_int(args[2])
|
||||
data = bytearray()
|
||||
for i in range(3, len(args)):
|
||||
data.append(str_to_int(args[i]))
|
||||
i2c_controller.writeto_mem(device, addr, data)
|
||||
print('succeed: ')
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
|
||||
######################################################################
|
||||
## SPI controller commands
|
||||
######################################################################
|
||||
elif args[0] == 'spi_setup':
|
||||
# ====== spi controller setup ======
|
||||
# PiPico: spi_setup 100000 2 3 0 1 0 1 # param#1: 100000 - spi clock frequence
|
||||
# # param#2: 2 - sck pin io number
|
||||
# # param#3: 3 - mosi pin io number
|
||||
# # param#4: 0 - miso pin io number
|
||||
# # param#5: 1 - cs pin io number, -1 if don't want spi controller toggle cs pin
|
||||
# # param#6: 0 - polarity setting
|
||||
# # param#7: 1 - phase setting
|
||||
#
|
||||
|
||||
try:
|
||||
if spi_controller is not None:
|
||||
spi_controller = None
|
||||
if spi_cs_pin is not None:
|
||||
spi_cs_pin = None
|
||||
|
||||
clk_freq = str_to_int(args[1])
|
||||
|
||||
spi_sck_pin = machine.Pin(str_to_int(args[2]))
|
||||
spi_mosi_pin = machine.Pin(str_to_int(args[3]))
|
||||
spi_miso_pin = machine.Pin(str_to_int(args[4]))
|
||||
spi_cs_pin = machine.Pin(str_to_int(args[5]), machine.Pin.OUT)
|
||||
polarity = str_to_int(args[6])
|
||||
phase = str_to_int(args[7])
|
||||
|
||||
spi_controller = machine.SPI(0, baudrate=clk_freq, polarity=polarity, phase=phase, sck=spi_sck_pin, mosi=spi_mosi_pin, miso=spi_miso_pin)
|
||||
print('succeed: ', spi_controller)
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
|
||||
elif args[0] == 'spi_cleanup':
|
||||
# ====== spi controller setup ======
|
||||
try:
|
||||
if spi_controller is not None:
|
||||
spi_controller = None
|
||||
if spi_cs_pin is not None:
|
||||
spi_cs_pin = None
|
||||
|
||||
print('succeed: ')
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
|
||||
elif args[0] == 'spi_read':
|
||||
# ====== spi data read ======
|
||||
# spi_read 3 # 3 - read length
|
||||
try:
|
||||
length = str_to_int(args[1])
|
||||
|
||||
# active cs pin if required
|
||||
if spi_cs_pin is not None:
|
||||
spi_cs_pin.value(0)
|
||||
|
||||
data = spi_controller.read(length)
|
||||
|
||||
# deactive cs pin if required
|
||||
if spi_cs_pin is not None:
|
||||
spi_cs_pin.value(1)
|
||||
|
||||
print('succeed: ', data.hex(','))
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
|
||||
elif args[0] == 'spi_write':
|
||||
# ====== spi data write ======
|
||||
# spi_write 0x01 0x02 0x03 ... 0x10 # 0x01 ~ 0x10 - data to write to device
|
||||
try:
|
||||
data = bytearray()
|
||||
for i in range(1, len(args)):
|
||||
data.append(str_to_int(args[i]))
|
||||
|
||||
# active cs pin if required
|
||||
if spi_cs_pin is not None:
|
||||
spi_cs_pin.value(0)
|
||||
|
||||
spi_controller.write(data)
|
||||
|
||||
# deactive cs pin if required
|
||||
if spi_cs_pin is not None:
|
||||
spi_cs_pin.value(1)
|
||||
|
||||
print('succeed: ')
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
|
||||
elif args[0] == 'spi_write_read':
|
||||
# ====== spi data read ======
|
||||
# spi_write_read 3 0x01 0x02 0x03 ... 0x10 # 3 - read length, 0x01 ~ 0x10 - data to write to device
|
||||
try:
|
||||
read_length = str_to_int(args[1])
|
||||
|
||||
# active cs pin if required
|
||||
if spi_cs_pin is not None:
|
||||
spi_cs_pin.value(0)
|
||||
|
||||
write_data = bytearray()
|
||||
for i in range(2, len(args)):
|
||||
write_data.append(str_to_int(args[i]))
|
||||
|
||||
spi_controller.write(write_data)
|
||||
read_data = spi_controller.read(read_length)
|
||||
|
||||
# deactive cs pin if required
|
||||
if spi_cs_pin is not None:
|
||||
spi_cs_pin.value(1)
|
||||
|
||||
print('succeed: ', read_data.hex(','))
|
||||
except Exception as e:
|
||||
print('failed: ', e)
|
||||
else:
|
||||
print('unknow command: ', args[0])
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,3 +1,3 @@
|
||||
[My Computer]
|
||||
My Computer = "172.20.6.234"
|
||||
My Computer = "192.168.189.1"
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
<Property Name="Destination[1].destName" Type="Str">Support Directory</Property>
|
||||
<Property Name="Destination[1].path" Type="Path">../builds/NI_AB_PROJECTNAME/Boyi_Airleak</Property>
|
||||
<Property Name="DestinationCount" Type="Int">2</Property>
|
||||
<Property Name="Source[0].itemID" Type="Str">{F7A1B2B7-1F75-4035-9780-1FD0539777FD}</Property>
|
||||
<Property Name="Source[0].itemID" Type="Str">{FAB75C3B-4DE3-4C7E-8E11-DF5BC1395959}</Property>
|
||||
<Property Name="Source[0].type" Type="Str">Container</Property>
|
||||
<Property Name="Source[1].destinationIndex" Type="Int">0</Property>
|
||||
<Property Name="Source[1].itemID" Type="Ref">/My Computer/Boyi_AirLeakTest.vi</Property>
|
||||
|
||||
Binary file not shown.
@@ -1,2 +1,3 @@
|
||||
[My Computer]
|
||||
My Computer = "192.168.56.1"
|
||||
My Computer = "192.168.189.1"
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
[ProjectWindow_Data]
|
||||
ProjectExplorer.ClassicPosition[String] = "122,1095,750,1706"
|
||||
ProjectExplorer.ClassicPosition[String] = "59,2036,687,2647"
|
||||
|
||||
[AB_Cache_{796D7191-C432-47E7-AEE9-9E35637FEE0F}]
|
||||
Cache_Path[Path] Line0001 = "/C/Users/wee/AppData/Local/Temp/AB_Cache_{796D7191"
|
||||
Cache_Path[Path] Line0002 = "-C432-47E7-AEE9-9E35637FEE0F}.txt"
|
||||
[AB_Cache_{B8F52674-5859-47DA-8D81-080F55E0F424}]
|
||||
Cache_Path[Path] Line0001 = "/C/Users/wee/AppData/Local/Temp/AB_Cache_{B8F52674"
|
||||
Cache_Path[Path] Line0002 = "-5859-47DA-8D81-080F55E0F424}.txt"
|
||||
|
||||
[AB_Cache_{18DF3938-90E1-49FE-869A-36578EADDB71}]
|
||||
Cache_Path[Path] Line0001 = "/C/Users/wee/AppData/Local/Temp/AB_Cache_{18DF3938"
|
||||
Cache_Path[Path] Line0002 = "-90E1-49FE-869A-36578EADDB71}.txt"
|
||||
[AB_Cache_{D0745400-408B-4D6D-B4B5-09629F97B805}]
|
||||
Cache_Path[Path] Line0001 = "/C/Users/wee/AppData/Local/Temp/AB_Cache_{D0745400"
|
||||
Cache_Path[Path] Line0002 = "-408B-4D6D-B4B5-09629F97B805}.txt"
|
||||
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
<Property Name="server.vi.callsEnabled" Type="Bool">true</Property>
|
||||
<Property Name="server.vi.propertiesEnabled" Type="Bool">true</Property>
|
||||
<Property Name="specify.custom.address" Type="Bool">false</Property>
|
||||
<Item Name="Boyi_AirLeakTest Rel1.vi" Type="VI" URL="../Boyi_AirLeakTest Rel1.vi"/>
|
||||
<Item Name="Boyi_AirLeakTest Rel2.vi" Type="VI" URL="../Boyi_AirLeakTest Rel2.vi"/>
|
||||
<Item Name="MESDll.dll" Type="Document" URL="../MESDll.dll"/>
|
||||
<Item Name="Settings.ini" Type="Document" URL="../Settings.ini"/>
|
||||
<Item Name="Dependencies" Type="Dependencies">
|
||||
<Item Name="vi.lib" Type="Folder">
|
||||
@@ -68,14 +69,13 @@
|
||||
<Item Name="JSON_results_file_make_and_save.vi" Type="VI" URL="../SupportVIs/JSON_results_file_make_and_save.vi"/>
|
||||
<Item Name="LuxShare_CheckStation.vi" Type="VI" URL="../SupportVIs/LuxShare_CheckStation.vi"/>
|
||||
<Item Name="LuxShare_SaveResult.vi" Type="VI" URL="../SupportVIs/LuxShare_SaveResult.vi"/>
|
||||
<Item Name="MESDll.dll" Type="Document" URL="../SupportVIs/MESDll.dll"/>
|
||||
<Item Name="MesInterfacelib.dll" Type="Document" URL="../SupportVIs/LuxshareMES/Debug/MesInterfacelib.dll"/>
|
||||
<Item Name="Sorting_Serial_Read.vi" Type="VI" URL="../SupportVIs/Sorting_Serial_Read.vi"/>
|
||||
<Item Name="StringToHex.vi" Type="VI" URL="../SupportVIs/StringToHex.vi"/>
|
||||
<Item Name="UTF8 LV80.vi" Type="VI" URL="../SupportVIs/UTF8 LV80.vi"/>
|
||||
</Item>
|
||||
<Item Name="Build Specifications" Type="Build">
|
||||
<Item Name="Boyi Airleak Rel 1 Installer" Type="Installer">
|
||||
<Item Name="Boyi Airleak Rel 2 Installer" Type="Installer">
|
||||
<Property Name="Destination[0].name" Type="Str">Boyi Airleak Test</Property>
|
||||
<Property Name="Destination[0].parent" Type="Str">{3912416A-D2E5-411B-AFEE-B63654D690C0}</Property>
|
||||
<Property Name="Destination[0].tag" Type="Str">{7B893F76-DB9F-4AEC-833B-2D928504EF09}</Property>
|
||||
@@ -132,14 +132,14 @@
|
||||
<Property Name="DistPart[2].upgradeCode" Type="Str">{3B195EBF-4A09-46E6-8EAD-931568C1344C}</Property>
|
||||
<Property Name="DistPartCount" Type="Int">3</Property>
|
||||
<Property Name="INST_autoIncrement" Type="Bool">true</Property>
|
||||
<Property Name="INST_buildLocation" Type="Path">../builds/Boyi Airleak Test Rel 1/Boyi Airleak Rel 1 Installer</Property>
|
||||
<Property Name="INST_buildLocation" Type="Path">../builds/Boyi Airleak Test Rel 2/Boyi Airleak Rel 2 Installer</Property>
|
||||
<Property Name="INST_buildLocation.type" Type="Str">relativeToCommon</Property>
|
||||
<Property Name="INST_buildSpecName" Type="Str">Boyi Airleak Rel 1 Installer</Property>
|
||||
<Property Name="INST_buildSpecName" Type="Str">Boyi Airleak Rel 2 Installer</Property>
|
||||
<Property Name="INST_defaultDir" Type="Str">{7B893F76-DB9F-4AEC-833B-2D928504EF09}</Property>
|
||||
<Property Name="INST_productName" Type="Str">Boyi Airleak Test Rel 1</Property>
|
||||
<Property Name="INST_productVersion" Type="Str">1.0.3</Property>
|
||||
<Property Name="INST_productName" Type="Str">Boyi Airleak Test Rel 2</Property>
|
||||
<Property Name="INST_productVersion" Type="Str">1.0.5</Property>
|
||||
<Property Name="InstSpecBitness" Type="Str">32-bit</Property>
|
||||
<Property Name="InstSpecVersion" Type="Str">18008007</Property>
|
||||
<Property Name="InstSpecVersion" Type="Str">18008012</Property>
|
||||
<Property Name="MSI_autoselectDrivers" Type="Bool">true</Property>
|
||||
<Property Name="MSI_distID" Type="Str">{F220AF39-DFF4-42DA-8468-607C9471CB6B}</Property>
|
||||
<Property Name="MSI_hideNonRuntimes" Type="Bool">true</Property>
|
||||
@@ -151,60 +151,61 @@
|
||||
<Property Name="RegDestCount" Type="Int">1</Property>
|
||||
<Property Name="Source[0].dest" Type="Str">{7B893F76-DB9F-4AEC-833B-2D928504EF09}</Property>
|
||||
<Property Name="Source[0].File[0].dest" Type="Str">{7B893F76-DB9F-4AEC-833B-2D928504EF09}</Property>
|
||||
<Property Name="Source[0].File[0].name" Type="Str">Boyi Airleak Test.exe</Property>
|
||||
<Property Name="Source[0].File[0].name" Type="Str">Boyi Airleak Test Rel2.exe</Property>
|
||||
<Property Name="Source[0].File[0].Shortcut[0].destIndex" Type="Int">0</Property>
|
||||
<Property Name="Source[0].File[0].Shortcut[0].name" Type="Str">Boyi Airleak Test</Property>
|
||||
<Property Name="Source[0].File[0].Shortcut[0].subDir" Type="Str">Boyi Airleak Test</Property>
|
||||
<Property Name="Source[0].File[0].Shortcut[0].name" Type="Str">Boyi Airleak Test Rel2</Property>
|
||||
<Property Name="Source[0].File[0].Shortcut[0].subDir" Type="Str">Boyi Airleak Test Rel 1</Property>
|
||||
<Property Name="Source[0].File[0].ShortcutCount" Type="Int">1</Property>
|
||||
<Property Name="Source[0].File[0].tag" Type="Str">{3B38CC8E-D49F-4485-9E26-00AAEF33D0C1}</Property>
|
||||
<Property Name="Source[0].File[0].tag" Type="Str">{DF6F6D4E-5304-46EC-9A7A-44717F8C9C95}</Property>
|
||||
<Property Name="Source[0].FileCount" Type="Int">1</Property>
|
||||
<Property Name="Source[0].name" Type="Str">Boyi Airleak Test Rel1</Property>
|
||||
<Property Name="Source[0].tag" Type="Ref">/My Computer/Build Specifications/Boyi Airleak Test Rel1</Property>
|
||||
<Property Name="Source[0].name" Type="Str">Boyi Airleak Test Rel2</Property>
|
||||
<Property Name="Source[0].tag" Type="Ref">/My Computer/Build Specifications/Boyi Airleak Test Rel2</Property>
|
||||
<Property Name="Source[0].type" Type="Str">EXE</Property>
|
||||
<Property Name="SourceCount" Type="Int">1</Property>
|
||||
</Item>
|
||||
<Item Name="Boyi Airleak Test Rel1" Type="EXE">
|
||||
<Item Name="Boyi Airleak Test Rel2" Type="EXE">
|
||||
<Property Name="App_copyErrors" Type="Bool">true</Property>
|
||||
<Property Name="App_INI_aliasGUID" Type="Str">{E948E052-E6A7-4C6E-8F23-5160D019BDCA}</Property>
|
||||
<Property Name="App_INI_GUID" Type="Str">{9470399D-BA8C-4FDD-9920-A4C0BD0F4143}</Property>
|
||||
<Property Name="App_INI_aliasGUID" Type="Str">{79E899CA-C107-442C-B645-DF13AD3BDC48}</Property>
|
||||
<Property Name="App_INI_GUID" Type="Str">{4B4EF9EA-3AD3-4618-93FD-150F6B69C86A}</Property>
|
||||
<Property Name="App_serverConfig.httpPort" Type="Int">8002</Property>
|
||||
<Property Name="App_winsec.description" Type="Str">http://www.Sonos.com</Property>
|
||||
<Property Name="Bld_autoIncrement" Type="Bool">true</Property>
|
||||
<Property Name="Bld_buildCacheID" Type="Str">{796D7191-C432-47E7-AEE9-9E35637FEE0F}</Property>
|
||||
<Property Name="Bld_buildSpecName" Type="Str">Boyi Airleak Test Rel1</Property>
|
||||
<Property Name="Bld_buildCacheID" Type="Str">{B8F52674-5859-47DA-8D81-080F55E0F424}</Property>
|
||||
<Property Name="Bld_buildSpecName" Type="Str">Boyi Airleak Test Rel2</Property>
|
||||
<Property Name="Bld_excludeInlineSubVIs" Type="Bool">true</Property>
|
||||
<Property Name="Bld_excludeLibraryItems" Type="Bool">true</Property>
|
||||
<Property Name="Bld_excludePolymorphicVIs" Type="Bool">true</Property>
|
||||
<Property Name="Bld_localDestDir" Type="Path">../builds/Boyi Airleak Test Rel 1/Boyi Airleak Test Rel1</Property>
|
||||
<Property Name="Bld_localDestDir" Type="Path">../builds/NI_AB_PROJECTNAME/Boyi Airleak Test Rel2</Property>
|
||||
<Property Name="Bld_localDestDirType" Type="Str">relativeToCommon</Property>
|
||||
<Property Name="Bld_modifyLibraryFile" Type="Bool">true</Property>
|
||||
<Property Name="Bld_previewCacheID" Type="Str">{18DF3938-90E1-49FE-869A-36578EADDB71}</Property>
|
||||
<Property Name="Bld_version.build" Type="Int">4</Property>
|
||||
<Property Name="Bld_previewCacheID" Type="Str">{D0745400-408B-4D6D-B4B5-09629F97B805}</Property>
|
||||
<Property Name="Bld_version.build" Type="Int">14</Property>
|
||||
<Property Name="Bld_version.major" Type="Int">1</Property>
|
||||
<Property Name="Destination[0].destName" Type="Str">Boyi Airleak Test.exe</Property>
|
||||
<Property Name="Destination[0].path" Type="Path">../builds/Boyi Airleak Test Rel 1/Boyi Airleak Test Rel1/NI_AB_PROJECTNAME.exe</Property>
|
||||
<Property Name="Destination[0].destName" Type="Str">Boyi Airleak Test Rel2.exe</Property>
|
||||
<Property Name="Destination[0].path" Type="Path">../builds/NI_AB_PROJECTNAME/Boyi Airleak Test Rel2/Boyi Airleak Test Rel2.exe</Property>
|
||||
<Property Name="Destination[0].preserveHierarchy" Type="Bool">true</Property>
|
||||
<Property Name="Destination[0].type" Type="Str">App</Property>
|
||||
<Property Name="Destination[1].destName" Type="Str">Support Directory</Property>
|
||||
<Property Name="Destination[1].path" Type="Path">../builds/Boyi Airleak Test Rel 1/Boyi Airleak Test Rel1</Property>
|
||||
<Property Name="Destination[1].path" Type="Path">../builds/NI_AB_PROJECTNAME/Boyi Airleak Test Rel2</Property>
|
||||
<Property Name="DestinationCount" Type="Int">2</Property>
|
||||
<Property Name="Source[0].itemID" Type="Str">{6E14701C-1CE3-420A-8CEB-7A82A529FD25}</Property>
|
||||
<Property Name="Source[0].itemID" Type="Str">{9B149762-A632-421B-B31E-791EB1694928}</Property>
|
||||
<Property Name="Source[0].type" Type="Str">Container</Property>
|
||||
<Property Name="Source[1].destinationIndex" Type="Int">0</Property>
|
||||
<Property Name="Source[1].itemID" Type="Ref">/My Computer/Boyi_AirLeakTest Rel1.vi</Property>
|
||||
<Property Name="Source[1].itemID" Type="Ref">/My Computer/Boyi_AirLeakTest Rel2.vi</Property>
|
||||
<Property Name="Source[1].sourceInclusion" Type="Str">TopLevel</Property>
|
||||
<Property Name="Source[1].type" Type="Str">VI</Property>
|
||||
<Property Name="Source[2].destinationIndex" Type="Int">0</Property>
|
||||
<Property Name="Source[2].itemID" Type="Ref">/My Computer/Settings.ini</Property>
|
||||
<Property Name="Source[2].itemID" Type="Ref">/My Computer/MESDll.dll</Property>
|
||||
<Property Name="Source[2].sourceInclusion" Type="Str">Include</Property>
|
||||
<Property Name="SourceCount" Type="Int">3</Property>
|
||||
<Property Name="TgtF_companyName" Type="Str">Sonos</Property>
|
||||
<Property Name="TgtF_fileDescription" Type="Str">Boyi Airleak Test Rel1</Property>
|
||||
<Property Name="TgtF_internalName" Type="Str">Boyi Airleak Test Rel1</Property>
|
||||
<Property Name="TgtF_legalCopyright" Type="Str">Copyright © 2023 Sonos</Property>
|
||||
<Property Name="TgtF_productName" Type="Str">Boyi Airleak Test Rel1</Property>
|
||||
<Property Name="TgtF_targetfileGUID" Type="Str">{3B38CC8E-D49F-4485-9E26-00AAEF33D0C1}</Property>
|
||||
<Property Name="TgtF_targetfileName" Type="Str">Boyi Airleak Test.exe</Property>
|
||||
<Property Name="Source[3].destinationIndex" Type="Int">0</Property>
|
||||
<Property Name="Source[3].itemID" Type="Ref">/My Computer/Settings.ini</Property>
|
||||
<Property Name="Source[3].sourceInclusion" Type="Str">Include</Property>
|
||||
<Property Name="SourceCount" Type="Int">4</Property>
|
||||
<Property Name="TgtF_fileDescription" Type="Str">Boyi Airleak Test Rel2</Property>
|
||||
<Property Name="TgtF_internalName" Type="Str">Boyi Airleak Test Rel2</Property>
|
||||
<Property Name="TgtF_legalCopyright" Type="Str">Copyright © 2026 </Property>
|
||||
<Property Name="TgtF_productName" Type="Str">Boyi Airleak Test Rel2</Property>
|
||||
<Property Name="TgtF_targetfileGUID" Type="Str">{DF6F6D4E-5304-46EC-9A7A-44717F8C9C95}</Property>
|
||||
<Property Name="TgtF_targetfileName" Type="Str">Boyi Airleak Test Rel2.exe</Property>
|
||||
<Property Name="TgtF_versionIndependent" Type="Bool">true</Property>
|
||||
</Item>
|
||||
</Item>
|
||||
|
||||
Binary file not shown.
BIN
Boyi Airleak Rel1 (LV2018 32bits)/Boyi_AirLeakTest Rel2.vi
Normal file
BIN
Boyi Airleak Rel1 (LV2018 32bits)/Boyi_AirLeakTest Rel2.vi
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Sonos Device Library - old/Sonos Device Library.zip
Normal file
BIN
Sonos Device Library - old/Sonos Device Library.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user