Skip to content

Commit

Permalink
🔖 Release 3.3.3 (#215)
Browse files Browse the repository at this point in the history
* 🐛 emit correct compiler for C files when generating CDB (#188)

* Update Azure Pipelines with new self hosted M1 Mac (#189)

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Fixes 'make.exe.exe' typo. Adds disable sentry prompt option for VSCode. (#190)

* Fixes 'make.exe.exe' typo. Adds disable sentry prompt option for VSCode.

* Fix sentry-off flag

* change sentry-off to no-sentry

* Update Version (#186) (#191)

* ✨Add Analytics (#193)

* Fix and move no-sentry to default options. Setup framework for analytics

* Fix some things. --toggle-analytics works

* Analytics should be working. Need to figure out which commands matter

* Make use-analytics a choice not a toggle

* Show no-analytics flag feedback so user knows it works

* Analytics appear to be working!

* Reset uid to None

* Compress code a bit

* Remove interactive command analytics. Fix info-project typo

* Move GA config to cli.pros. Fixes --use-analytics

* ✨More Upload Options (#194)

* Start of more upload options

* Adds project icon, name, and description. Use name/description="string"

* pros v5 rm-program command

* rm program literals

* Remove extra print messages. Kernel version = None when no project

* Update Version (#186) (#195)

* Add __init__ file so ga is considered a module (#206)

* Fix issue with programs uploading segfaulting/NACKing/doing nothing (#207)

* ✨Set team number and robot name (#210)

* Adds kv_read and kv_write functions (UNTESTED) to V5Device class

* Add commands to read and set kernel variables

* Add descriptions to set_variable and read_variable commands

* Finish reading kernel variables. Use None for unknown rx length

* Trim kernel variable value and ensure null terminated.

* Move rv and sv to v5 commands

* Working set command. Maximum lengths based on brain's screen space

* get and set aliases

* Add m as an alias for pros make. (#204)

* Cleaned Up CI (#213)

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Update azure-pipelines.yml for Azure Pipelines

* Revert "✨Set team number and robot name (#210)" (#214)

This reverts commit 62ee4b8.

* Update Version to 3.3.3

* Update Version to 3.3.3

* Revert kernel variable read/set

Co-authored-by: Kunwar Sahni <[email protected]>
Co-authored-by: Alex Brooke <[email protected]>
  • Loading branch information
3 people authored May 25, 2022
1 parent 7b8c838 commit 62758e9
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 102 deletions.
42 changes: 14 additions & 28 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,12 @@ jobs:

- job: Windows
dependsOn: UpdateBuildNumber
timeoutInMinutes: 30
timeoutInMinutes: 20
strategy:
maxParallel: 2
matrix:
x64:
buildArch: x64
x86:
buildArch: x86
pool:
vmImage: windows-latest
steps:
Expand All @@ -33,7 +31,7 @@ jobs:
- task: UsePythonVersion@0
inputs:
versionSpec: $(python.version)
architecture: $(buildArch)
# architecture: $(buildArch)
- powershell: scripts/build.ps1
displayName: Build
- task: PublishPipelineArtifact@0
Expand All @@ -42,37 +40,22 @@ jobs:
targetPath: 'out'

- job: macOS
timeoutInMinutes: 30
timeoutInMinutes: 20
dependsOn: UpdateBuildNumber
strategy:
maxParallel: 2
matrix:
x64:
poolName: Azure Pipelines
vmImage: macos-latest
buildArch: x64
pool:
vmImage: macos-latest
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: $(python.version)
architecture: $(buildArch)
- bash: scripts/build.sh
displayName: Build
- task: PublishPipelineArtifact@0
inputs:
artifactName: 'pros_cli-$(Build.BuildNumber)-macos-$(buildArch)'
targetPath: 'out'

- job: macOSM1
timeoutInMinutes: 30
dependsOn: UpdateBuildNumber
strategy:
maxParallel: 2
matrix:
arm64:
poolName: M1 Mac
vmImage:
buildArch: arm64
pool:
M1 Mac
name: $(poolName)
vmImage: $(vmImage)
steps:
- task: UsePythonVersion@0
inputs:
Expand All @@ -85,21 +68,24 @@ jobs:
artifactName: 'pros_cli-$(Build.BuildNumber)-macos-$(buildArch)'
targetPath: 'out'


- job: Linux
timeoutInMinutes: 30
timeoutInMinutes: 20
dependsOn: UpdateBuildNumber
strategy:
maxParallel: 2
matrix:
x64:
buildArch: x64
arm64:
buildArch: arm64
pool:
vmImage: ubuntu-latest
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: $(python.version)
architecture: $(buildArch)
# architecture: $(buildArch)
- bash: scripts/build.sh
displayName: Build
- task: PublishPipelineArtifact@0
Expand Down
2 changes: 1 addition & 1 deletion pip_version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.3.2
3.3.3
1 change: 0 additions & 1 deletion pros/cli/misc_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
from pros.cli.common import *
from pros.ga.analytics import analytics


@pros_root
def misc_commands_cli():
pass
Expand Down
32 changes: 0 additions & 32 deletions pros/cli/v5_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -290,35 +290,3 @@ def capture(file_name: str, port: str, force: bool = False):
w.write(file_, i_data)

print(f'Saved screen capture to {file_name}')

@v5.command(aliases=['sv', 'set'], short_help='Set a kernel variable on a connected V5 device')
@click.argument('variable', type=click.Choice(['teamnumber', 'robotname']), required=True)
@click.argument('value', required=True, type=click.STRING, nargs=1)
@default_options
def set_variable(variable, value):
import pros.serial.devices.vex as vex
from pros.serial.ports import DirectPort

# Get the connected v5 device
port = resolve_v5_port(None, 'system')[0]
if port == None:
return
device = vex.V5Device(DirectPort(port))
device.kv_write(variable, value)
print(f'{variable} set to {value[:253]}')

@v5.command(aliases=['rv', 'get'], short_help='Read a kernel variable from a connected V5 device')
@click.argument('variable', type=click.Choice(['teamnumber', 'robotname']), required=True)
@default_options
def read_variable(variable):
import pros.serial.devices.vex as vex
from pros.serial.ports import DirectPort

# Get the connected v5 device
port = resolve_v5_port(None, 'system')[0]
if port == None:
return
device = vex.V5Device(DirectPort(port))
value = device.kv_read(variable).decode()
print(f'Value of \'{variable}\' : {value}')

41 changes: 3 additions & 38 deletions pros/serial/devices/vex/v5_device.py
Original file line number Diff line number Diff line change
Expand Up @@ -892,36 +892,6 @@ def sc_init(self) -> None:
self._txrx_ext_struct(0x28, [], '')
logger(__name__).debug('Completed ext 0x28 command')

@retries
def kv_read(self, kv: str) -> bytearray:
logger(__name__).debug('Sending ext 0x2e command')
encoded_kv = f'{kv}\0'.encode(encoding='ascii')
tx_payload = struct.pack(f'<{len(encoded_kv)}s', encoded_kv)
# Because the length of the kernel variables is not known, use None to indicate we are recieving an unknown length.
ret = self._txrx_ext_struct(0x2e, tx_payload, None, check_length=False, check_ack=True)[0]
logger(__name__).debug('Completed ext 0x2e command')
return ret

@retries
def kv_write(self, kv: str, payload: Union[Iterable, bytes, bytearray, str]):
logger(__name__).debug('Sending ext 0x2f command')
encoded_kv = f'{kv}\0'.encode(encoding='ascii')
kv_to_max_bytes = {
'teamnumber': 7,
'robotname': 16
}
if len(kv) > kv_to_max_bytes.get(kv, 254):
logger(__name__).info(f'{kv} is longer than the maximum supported length {kv_to_max_bytes[kv]}, truncating.')
# Trim down size of payload to fit within the 255 byte limit and add null terminator.
payload = payload[:kv_to_max_bytes.get(kv, 254)] + "\0"
if isinstance(payload, str):
payload = payload.encode(encoding='ascii')
tx_fmt =f'<{len(encoded_kv)}s{len(payload)}s'
tx_payload = struct.pack(tx_fmt, encoded_kv, payload)
ret = self._txrx_ext_packet(0x2f, tx_payload, None, check_length=False, check_ack=True)
logger(__name__).debug('Completed ext 0x2f command')
return ret

def _txrx_ext_struct(self, command: int, tx_data: Union[Iterable, bytes, bytearray],
unpack_fmt: str, check_length: bool = True, check_ack: bool = True,
timeout: Optional[float] = None) -> Tuple:
Expand All @@ -936,14 +906,10 @@ def _txrx_ext_struct(self, command: int, tx_data: Union[Iterable, bytes, bytearr
:param check_ack: If true, then checks the first byte of the extended payload as an AK byte
:return: A tuple unpacked according to the unpack_fmt
"""
# Calculate the size of unpack_fmt if it is not None
calculated_size = struct.calcsize(unpack_fmt) if unpack_fmt else None
rx = self._txrx_ext_packet(command, tx_data, calculated_size,
rx = self._txrx_ext_packet(command, tx_data, struct.calcsize(unpack_fmt),
check_length=check_length, check_ack=check_ack, timeout=timeout)
logger(__name__).debug('Unpacking with format: {}'.format(unpack_fmt))
# Use the provided unpack_fmt if it was not None, otherwise use the recieved size
recieve_format = unpack_fmt if unpack_fmt else '<{}s'.format(len(rx))
return struct.unpack(recieve_format, rx)
return struct.unpack(unpack_fmt, rx)

@classmethod
def _rx_ext_packet(cls, msg: Message, command: int, rx_length: int, check_ack: bool = True,
Expand Down Expand Up @@ -1006,8 +972,7 @@ def _txrx_ext_packet(self, command: int, tx_data: Union[Iterable, bytes, bytearr
"""
tx_payload = self._form_extended_payload(command, tx_data)
rx = self._txrx_packet(0x56, tx_data=tx_payload, timeout=timeout)
# Use rx_length if it was provided, otherwise use the length of the received data
rx_length = rx_length if rx_length else len(rx)

return self._rx_ext_packet(rx, command, rx_length, check_ack=check_ack, check_length=check_length)

@classmethod
Expand Down
2 changes: 1 addition & 1 deletion version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.3.2
3.3.3
2 changes: 1 addition & 1 deletion win_version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.3.2.0
3.3.3.0

0 comments on commit 62758e9

Please sign in to comment.