Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
66940dc
First commit of the app
blourenco217 Jul 8, 2025
a0b8e4e
Testing different layouts
blourenco217 Jul 9, 2025
9655e09
Digital Outputs Start and Stop PWM buttons added
blourenco217 Jul 21, 2025
871270a
Toggle buttons at the PWMs implemented
blourenco217 Jul 21, 2025
0bedc0a
New tab item tested out
blourenco217 Jul 25, 2025
db9f49f
Display Inputs
blourenco217 Jul 25, 2025
ce74d50
new configuration
blourenco217 Jul 28, 2025
e173ed2
Added Apply buttons for RGBs LEDs and DOs
blourenco217 Jul 29, 2025
75c1cd2
Redesign of analog input
blourenco217 Jul 29, 2025
d8d5cdd
Added events tab
blourenco217 Jul 29, 2025
fda0af5
Deleted extra commands in operations
blourenco217 Jul 29, 2025
7d9afc3
Apply specific buttons to the extended features
blourenco217 Jul 30, 2025
0bacba6
Added input/output direction combo box for the DIOs
blourenco217 Jul 31, 2025
5bd77ad
Tested out teh black boxes
blourenco217 Jul 31, 2025
b20e2a2
PORT 1 stack completed with black boxes
blourenco217 Jul 31, 2025
5c4473a
Grid completed
blourenco217 Aug 1, 2025
f99ef08
Added a review view of the DIs and corrected some typos
blourenco217 Aug 1, 2025
ffe9267
Added apply button at the timestamp
blourenco217 Aug 1, 2025
7acd0e8
Set and Clear Buttons were made interactive @ DIOs and @ RGBs and LEDs
blourenco217 Aug 6, 2025
f3a99fc
Added same configuration and table view to every tab, added button ap…
blourenco217 Aug 8, 2025
1d4176a
Added remining Apply buttons
blourenco217 Aug 8, 2025
a84bc24
Improved view for the mimic control cells
blourenco217 Aug 13, 2025
d9c44eb
RGBs and LEDs: made the set and clear interactive; corrected apply bu…
blourenco217 Aug 13, 2025
66eb3c5
Advanced Controls: same width for the 1st column
blourenco217 Aug 13, 2025
9ac6b6c
Made the start and stop buttons intetactive as well as then enable an…
blourenco217 Aug 13, 2025
ff64fc4
Reviewed servo motors outlook at the remake tab in the view
blourenco217 Aug 15, 2025
103377e
corrected serial timestamp
blourenco217 Aug 15, 2025
2b4fb64
corrected distance at apply button in the servos
blourenco217 Aug 15, 2025
df43693
Corrected typo
blourenco217 Aug 18, 2025
92801e9
open tab is the second
blourenco217 Aug 25, 2025
60fcf7e
Corrected view of the quadature encoder
blourenco217 Aug 25, 2025
3d930a3
added teh direction input apply button
blourenco217 Aug 25, 2025
b97a413
Enable/disable button fit the screen
blourenco217 Aug 25, 2025
fa023e6
changed label of timesatmp
blourenco217 Aug 25, 2025
3dadc51
removed duplicated advanced controls
blourenco217 Aug 25, 2025
1dea70c
corrected frame acquired active camera binding states
blourenco217 Aug 25, 2025
158d9b2
corrected labels at ports
blourenco217 Aug 27, 2025
2714e63
corrected limits current of leds
blourenco217 Aug 27, 2025
45aa3dd
Added digital input on the di/os tab
blourenco217 Sep 1, 2025
700d9b2
Cleaned up the viewmodel: unsured functions and commands
blourenco217 Sep 4, 2025
de4aa6b
Added comprehensive labels on the view
blourenco217 Sep 4, 2025
18c4f21
Corrected identation at the view document
blourenco217 Sep 4, 2025
8a30699
Corrections applied on the xmal file - improve readibility of the file
blourenco217 Sep 9, 2025
11aee71
clean up view model
blourenco217 Sep 9, 2025
c70c81a
deleted unused functionalities
blourenco217 Sep 9, 2025
7cb1d15
updaated readme
blourenco217 Sep 9, 2025
2b42daa
prepare for executable of different architectures
blourenco217 Sep 15, 2025
33b17e9
Add missing WriteMessagesControl
MicBoucinha Feb 2, 2026
6b13091
Update how app version is collected
MicBoucinha Feb 16, 2026
306af6f
Update logo for macOS
MicBoucinha Feb 16, 2026
4253117
Update how logos are copied to output dirs
MicBoucinha Feb 16, 2026
48e23e1
Update project to build .app on macOS
MicBoucinha Feb 16, 2026
d7fa64f
Update windows installer script
MicBoucinha Feb 16, 2026
0d1c1e6
Change app version
MicBoucinha Feb 16, 2026
e0f288d
Fix issue with copied logos
MicBoucinha Feb 16, 2026
1dcbd30
Refactor for compliance with latest interface
glopesdev Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
280 changes: 280 additions & 0 deletions App/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,280 @@
# editorconfig.org

# top-most EditorConfig file
root = true

# Default settings:
# A newline ending every file
# Use 4 spaces as indentation
[*]
insert_final_newline = true
indent_style = space
indent_size = 4
dotnet_style_operator_placement_when_wrapping = beginning_of_line
tab_width = 4
end_of_line = crlf
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:suggestion
dotnet_style_prefer_collection_expression = when_types_loosely_match:suggestion
dotnet_style_namespace_match_folder = true:suggestion

# C# files
[*.cs]
# New line preferences
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_between_query_expression_clauses = true
# trim_trailing_whitespace = true

# Indentation preferences
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_switch_labels = true
csharp_indent_labels = one_less_than_current

# avoid this. unless absolutely necessary
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_event = false:suggestion

# prefer var
csharp_style_var_for_built_in_types = true
csharp_style_var_when_type_is_apparent = true
csharp_style_var_elsewhere = true:suggestion

# use language keywords instead of BCL types
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion

# name all constant fields using PascalCase
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style

dotnet_naming_symbols.constant_fields.applicable_kinds = field
dotnet_naming_symbols.constant_fields.required_modifiers = const

dotnet_naming_style.pascal_case_style.capitalization = pascal_case

# private static fields should have s_ prefix
dotnet_naming_rule.private_static_fields_should_have_prefix.severity = suggestion
dotnet_naming_rule.private_static_fields_should_have_prefix.symbols = private_static_fields
dotnet_naming_rule.private_static_fields_should_have_prefix.style = private_static_prefix_style

dotnet_naming_symbols.private_static_fields.applicable_kinds = field
dotnet_naming_symbols.private_static_fields.required_modifiers = static
dotnet_naming_symbols.private_static_fields.applicable_accessibilities = private

dotnet_naming_style.private_static_prefix_style.required_prefix = s_
dotnet_naming_style.private_static_prefix_style.capitalization = camel_case

# internal and private fields should be _camelCase
dotnet_naming_rule.camel_case_for_private_internal_fields.severity = suggestion
dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields
dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case_underscore_style

dotnet_naming_symbols.private_internal_fields.applicable_kinds = field
dotnet_naming_symbols.private_internal_fields.applicable_accessibilities = private, internal

dotnet_naming_style.camel_case_underscore_style.required_prefix = _
dotnet_naming_style.camel_case_underscore_style.capitalization = camel_case

# use accessibility modifiers
dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion

# Code style defaults
dotnet_sort_system_directives_first = true
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = false

# Expression-level preferences
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion

# Expression-bodied members
csharp_style_expression_bodied_methods = false:none
csharp_style_expression_bodied_constructors = false:none
csharp_style_expression_bodied_operators = false:none
csharp_style_expression_bodied_properties = true:none
csharp_style_expression_bodied_indexers = true:none
csharp_style_expression_bodied_accessors = true:none

# Pattern matching
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion

# Null checking preferences
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion

# Space preferences
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false
space_within_single_line_array_initializer_braces = true

#Net Analyzer
dotnet_analyzer_diagnostic.category-Performance.severity = none #error - Uncomment when all violations are fixed.

# CS0649: Field 'field' is never assigned to, and will always have its default value 'value'
dotnet_diagnostic.CS0649.severity = error

# CS1591: Missing XML comment for publicly visible type or member
dotnet_diagnostic.CS1591.severity = suggestion

# CS0162: Remove unreachable code
dotnet_diagnostic.CS0162.severity = error
# CA1018: Mark attributes with AttributeUsageAttribute
dotnet_diagnostic.CA1018.severity = error
# CA1304: Specify CultureInfo
dotnet_diagnostic.CA1304.severity = warning
# CA1802: Use literals where appropriate
dotnet_diagnostic.CA1802.severity = warning
# CA1813: Avoid unsealed attributes
dotnet_diagnostic.CA1813.severity = error
# CA1815: Override equals and operator equals on value types
dotnet_diagnostic.CA1815.severity = warning
# CA1820: Test for empty strings using string length
dotnet_diagnostic.CA1820.severity = warning
# CA1821: Remove empty finalizers
dotnet_diagnostic.CA1821.severity = error
# CA1822: Mark members as static
dotnet_diagnostic.CA1822.severity = suggestion
dotnet_code_quality.CA1822.api_surface = private, internal
# CA1823: Avoid unused private fields
dotnet_diagnostic.CA1823.severity = error
# CA1825: Avoid zero-length array allocations
dotnet_diagnostic.CA1825.severity = warning
# CA1826: Use property instead of Linq Enumerable method
dotnet_diagnostic.CA1826.severity = suggestion
# CA1827: Do not use Count/LongCount when Any can be used
dotnet_diagnostic.CA1827.severity = warning
# CA1828: Do not use CountAsync/LongCountAsync when AnyAsync can be used
dotnet_diagnostic.CA1828.severity = warning
# CA1829: Use Length/Count property instead of Enumerable.Count method
dotnet_diagnostic.CA1829.severity = warning
#CA1847: Use string.Contains(char) instead of string.Contains(string) with single characters
dotnet_diagnostic.CA1847.severity = warning
# CA1851: Possible multiple enumerations of IEnumerable collection
dotnet_diagnostic.CA1851.severity = warning
#CA1854: Prefer the IDictionary.TryGetValue(TKey, out TValue) method
dotnet_diagnostic.CA1854.severity = warning
#CA2211:Non-constant fields should not be visible
dotnet_diagnostic.CA2211.severity = error

# Wrapping preferences
csharp_wrap_before_ternary_opsigns = false

# Avalonia DevAnalyzer preferences
dotnet_diagnostic.AVADEV2001.severity = error

# Avalonia PublicAnalyzer preferences
dotnet_diagnostic.AVP1000.severity = error
dotnet_diagnostic.AVP1001.severity = error
dotnet_diagnostic.AVP1002.severity = error
dotnet_diagnostic.AVP1010.severity = error
dotnet_diagnostic.AVP1011.severity = error
dotnet_diagnostic.AVP1012.severity = warning
dotnet_diagnostic.AVP1013.severity = error
dotnet_diagnostic.AVP1020.severity = error
dotnet_diagnostic.AVP1021.severity = error
dotnet_diagnostic.AVP1022.severity = error
dotnet_diagnostic.AVP1030.severity = error
dotnet_diagnostic.AVP1031.severity = error
dotnet_diagnostic.AVP1032.severity = error
dotnet_diagnostic.AVP1040.severity = error
dotnet_diagnostic.AVA2001.severity = error
csharp_using_directive_placement = outside_namespace:silent
csharp_prefer_simple_using_statement = true:suggestion
csharp_prefer_braces = true:silent
csharp_style_namespace_declarations = block_scoped:silent
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_prefer_top_level_statements = true:silent
csharp_style_prefer_primary_constructors = true:suggestion
csharp_prefer_system_threading_lock = true:suggestion
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = false:silent

# Xaml files
[*.{xaml,axaml}]
indent_size = 2
# DuplicateSetterError
avalonia_xaml_diagnostic.AVLN2203.severity = error
# StyleInMergedDictionaries
avalonia_xaml_diagnostic.AVLN2204.severity = error
# RequiredTemplatePartMissing
avalonia_xaml_diagnostic.AVLN2205.severity = error
# OptionalTemplatePartMissing
avalonia_xaml_diagnostic.AVLN2206.severity = info
# TemplatePartWrongType
avalonia_xaml_diagnostic.AVLN2207.severity = error
# ItemContainerInsideTemplate
avalonia_xaml_diagnostic.AVLN2208.severity = error
# Obsolete
avalonia_xaml_diagnostic.AVLN5001.severity = error

# Xml project files
[*.{csproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}]
indent_size = 2

# Xml build files
[*.builds]
indent_size = 2

# Xml files
[*.{xml,stylecop,resx,ruleset}]
indent_size = 2

# Xml config files
[*.{props,targets,config,nuspec}]
indent_size = 2

[*.json]
indent_size = 2

# Shell scripts
[*.sh]
end_of_line = lf
[*.{cmd,bat}]
end_of_line = crlf
Loading
Loading