How-To#
Getting Started with Scripting#
You can install the module using pip:
pip install pyx2cscopeGo to the
Examplesdirectory in the pyX2Cscope project to check out the available examples or create a new .py file according to your requirements.start with importing pyX2Cscope:
import pyx2cscopeChoose the communication interface from the interfaces’ module. Currently, Only Serial is supported: CAN and LIN coming in near future:
from xc2scope import X2CScope
Initiate the X2CScope and provide the desired COM port, by default baud rate is set to 115200. . If there’s a need to change the baud rate, include the baud_rate parameter with your preferred baud rate, In the same way other setting could be made:
x2cScope = X2CScope(port="COM16", elf_file=elf_file)
Replace the elf_file with the path to the ELF file of your project.
Create a Variable object for the variable you want to monitor:
variable = x2cScope.get_variable('Variable_name')
Replace ‘Variable_name’ with the name of the variable you want to monitor. You can create multiple variable objects as required.
Once you have gone through these steps, you can use the get_value() function to retrieve the value of the variable:
variable.get_value()
To set the value for the respective variable set_value():
variable.set_value(value)
Scope Functionality#
To use the scope functionality, add channel to the scope: add_scope_channel(variable: Variable) :
x2cScope.add_scope_channel(variable1)
x2cScope.add_scope_channel(variable2)
To remove channel: remove_scope_channel(variable: Variable):
x2cScope.remove_scope_channel(variable2)
Up to 8 channels can be added.
To Set up Trigger, any available variable can be selected, by default works on no trigger configuration.
x2cscope.set_scope_trigger(variable: Variable, trigger_level: int, trigger_mode: int, trigger_delay: int, trigger_edge: int)
Trigger Parameters:
srcChannel: TriggerChannel (variable)
Level: trigger_level
Trigger_mode: 1 for triggered, 0 for Auto (No trigger)
Trigger_delay = Value > 0 Pre-trigger, Value < 0 Post trigger
Trigger_Edge: Rising (1) or Falling (0)
Example#
x2cScope.set_scope_trigger(variable3, trigger_level=500, trigger_mode=1, trigger_delay=50, trigger_edge=1)
clear_trigger(): Clears and diable trigger
x2cscope.clear_trigger()
set_sample_time(sample_time: int): This paramater defines a pre-scaler when the scope is in the sampling mode. This can be used to extend total sampling time at cost of resolution. 0 = every sample, 1 = every 2nd sample, 2 = every 3rd sample …..
x2cScope.set_sample_time(2)
is_scope_data_ready(self) -> bool: Returns Scope sampling state. Returns: true if sampling has completed, false if it’s yet in progress.
while not x2cScope.is_scope_data_ready():
time.sleep(0.1)
get_scope_channel_data(valid_data=False) -> Dict[str, List[Number]]: Once sampling is completed, this function could be used to get the sampled data.
data = x2cScope.get_scope_channel_data()