diff options
author | Sunil Shetye | 2020-09-11 00:54:54 +0530 |
---|---|---|
committer | Sunil Shetye | 2021-04-11 21:23:03 +0530 |
commit | 289ccfa00294a5c2741d92c39ee45ea059b5d61d (patch) | |
tree | c193973a5b780bcc8df29a0b9a5fd86385613681 | |
parent | 3f314832db3d69607bc7c7fbe3683739d4a8e1a3 (diff) | |
download | Common-Interface-Project-289ccfa00294a5c2741d92c39ee45ea059b5d61d.tar.gz Common-Interface-Project-289ccfa00294a5c2741d92c39ee45ea059b5d61d.tar.bz2 Common-Interface-Project-289ccfa00294a5c2741d92c39ee45ea059b5d61d.zip |
adding api for port
-rw-r--r-- | Xcos/Xcos_CLOCK_c.sci | 20 | ||||
-rw-r--r-- | blocks/blocks/xcosblocks/serializers.py | 154 | ||||
-rw-r--r-- | blocks/blocks/xcosblocks/urls.py | 7 | ||||
-rw-r--r-- | blocks/blocks/xcosblocks/views.py | 17 | ||||
-rw-r--r-- | docs/api.txt | 140 |
5 files changed, 159 insertions, 179 deletions
diff --git a/Xcos/Xcos_CLOCK_c.sci b/Xcos/Xcos_CLOCK_c.sci new file mode 100644 index 00000000..837a0714 --- /dev/null +++ b/Xcos/Xcos_CLOCK_c.sci @@ -0,0 +1,20 @@ +// [], [], [1], [5.2] = Xcos_CLOCK_c(5.2, [], [], [], [0.1, 0.1], [5.1]) + +function explicit_output_vector, implicit_output_vector, command_vector, new_state_vector = Xcos_CLOCK_c(time, explicit_input_vector, implicit_input_vector, control_vector, block_parameters, state_vector) + assert_checkequal(0, size(explicit_input_vector, 2)); + assert_checkequal(0, size(implicit_input_vector, 2)); + assert_checkequal(2, size(control_vector, 2)); + + last_time = size(state_vector, 2) > 0 ? state_vector(1) : 0; + next_state = (time < minimum_time) ? 0 : (time - last_time) > time_difference ? 1 : 0; + + explicit_output_vector = [] + implicit_output_vector = [] + command_vector = [next_state] + new_state_vector = [time] + +endfunction + + + + diff --git a/blocks/blocks/xcosblocks/serializers.py b/blocks/blocks/xcosblocks/serializers.py index 73429b7f..6749dd02 100644 --- a/blocks/blocks/xcosblocks/serializers.py +++ b/blocks/blocks/xcosblocks/serializers.py @@ -184,43 +184,117 @@ class BlockParameterSerializer(serializers.ModelSerializer): class SetBlockParameterSerializer(serializers.Serializer): block_id = serializers.IntegerField() - p000_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p001_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p002_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p003_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p004_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p005_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p006_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p007_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p008_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p009_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p010_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p011_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p012_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p013_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p014_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p015_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p016_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p017_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p018_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p019_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p020_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p021_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p022_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p023_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p024_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p025_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p026_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p027_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p028_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p029_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p030_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p031_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p032_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p033_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p034_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p035_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p036_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p037_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p038_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) - p039_value = serializers.CharField(max_length=100, allow_blank=True, trim_whitespace=True) + p000_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p001_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p002_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p003_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p004_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p005_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p006_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p007_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p008_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p009_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p010_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p011_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p012_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p013_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p014_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p015_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p016_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p017_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p018_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p019_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p020_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p021_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p022_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p023_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p024_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p025_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p026_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p027_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p028_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p029_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p030_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p031_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p032_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p033_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p034_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p035_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p036_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p037_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p038_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + p039_value = serializers.CharField(max_length=100, + allow_blank=True, trim_whitespace=True) + + def getblockportserializer(self): + block = Block.objects.get(id=self.data['block_id']) + + explicit_input_ports = block.initial_explicit_input_ports + implicit_input_ports = block.initial_implicit_input_ports + control_ports = block.initial_control_ports + explicit_output_ports = block.initial_explicit_output_ports + implicit_output_ports = block.initial_implicit_output_ports + command_ports = block.initial_command_ports + display_parameter = block.initial_display_parameter + + # TODO: change values depending on block name + + return SetBlockPortSerializer(data={ + 'explicit_input_ports': explicit_input_ports, + 'implicit_input_ports': implicit_input_ports, + 'control_ports': control_ports, + 'explicit_output_ports': explicit_output_ports, + 'implicit_output_ports': implicit_output_ports, + 'command_ports': command_ports, + 'display_parameter': display_parameter + }) + + +class SetBlockPortSerializer(serializers.Serializer): + explicit_input_ports = serializers.IntegerField() + implicit_input_ports = serializers.IntegerField() + control_ports = serializers.IntegerField() + explicit_output_ports = serializers.IntegerField() + implicit_output_ports = serializers.IntegerField() + command_ports = serializers.IntegerField() + display_parameter = serializers.CharField( + max_length=100, allow_blank=True, trim_whitespace=True) diff --git a/blocks/blocks/xcosblocks/urls.py b/blocks/blocks/xcosblocks/urls.py index 5d7d85d2..21633d27 100644 --- a/blocks/blocks/xcosblocks/urls.py +++ b/blocks/blocks/xcosblocks/urls.py @@ -1,9 +1,14 @@ +from django.urls import path from rest_framework.routers import DefaultRouter -from .views import CategoryViewSet, BlockViewSet, BlockParameterViewSet +from .views import CategoryViewSet, BlockViewSet, BlockParameterViewSet, \ + set_block_parameter router = DefaultRouter() router.register(r'categories', CategoryViewSet) router.register(r'blocks', BlockViewSet) router.register(r'block_parameters', BlockParameterViewSet) urlpatterns = router.urls +urlpatterns += [ + path('setblockparameter', set_block_parameter), +] diff --git a/blocks/blocks/xcosblocks/views.py b/blocks/blocks/xcosblocks/views.py index 69e636c8..04beb25e 100644 --- a/blocks/blocks/xcosblocks/views.py +++ b/blocks/blocks/xcosblocks/views.py @@ -1,10 +1,11 @@ +from django.http import JsonResponse from django_filters import FilterSet from django_filters.rest_framework import DjangoFilterBackend from rest_framework.viewsets import ReadOnlyModelViewSet from .models import Category, Block, BlockParameter from .serializers import CategorySerializer, BlockSerializer, \ - BlockParameterSerializer + BlockParameterSerializer, SetBlockParameterSerializer class CategoryFilterSet(FilterSet): @@ -67,3 +68,17 @@ class BlockParameterViewSet(ReadOnlyModelViewSet): DjangoFilterBackend ] filterset_class = BlockParameterFilterSet + + +def set_block_parameter(request): + if request.method == 'POST': + serializer = SetBlockParameterSerializer(data=request.POST) + if serializer.is_valid(): + # process the data to get port + port = serializer.getblockportserializer() + if port.is_valid(): + return JsonResponse(port.data) + else: + serializer = SetBlockParameterSerializer() + + return JsonResponse(serializer.data) diff --git a/docs/api.txt b/docs/api.txt index 5919d42c..2319e680 100644 --- a/docs/api.txt +++ b/docs/api.txt @@ -35,40 +35,7 @@ block_image_path p000_value_initial p001_value_initial p002_value_initial -p003_value_initial -p004_value_initial -p005_value_initial -p006_value_initial -p007_value_initial -p008_value_initial -p009_value_initial -p010_value_initial -p011_value_initial -p012_value_initial -p013_value_initial -p014_value_initial -p015_value_initial -p016_value_initial -p017_value_initial -p018_value_initial -p019_value_initial -p020_value_initial -p021_value_initial -p022_value_initial -p023_value_initial -p024_value_initial -p025_value_initial -p026_value_initial -p027_value_initial -p028_value_initial -p029_value_initial -p030_value_initial -p031_value_initial -p032_value_initial -p033_value_initial -p034_value_initial -p035_value_initial -p036_value_initial +... p037_value_initial p038_value_initial p039_value_initial @@ -90,74 +57,7 @@ p001 p001_type p002 p002_type -p003 -p003_type -p004 -p004_type -p005 -p005_type -p006 -p006_type -p007 -p007_type -p008 -p008_type -p009 -p009_type -p010 -p010_type -p011 -p011_type -p012 -p012_type -p013 -p013_type -p014 -p014_type -p015 -p015_type -p016 -p016_type -p017 -p017_type -p018 -p018_type -p019 -p019_type -p020 -p020_type -p021 -p021_type -p022 -p022_type -p023 -p023_type -p024 -p024_type -p025 -p025_type -p026 -p026_type -p027 -p027_type -p028 -p028_type -p029 -p029_type -p030 -p030_type -p031 -p031_type -p032 -p032_type -p033 -p033_type -p034 -p034_type -p035 -p035_type -p036 -p036_type +... p037 p037_type p038 @@ -175,40 +75,7 @@ block_id p000_value p001_value p002_value -p003_value -p004_value -p005_value -p006_value -p007_value -p008_value -p009_value -p010_value -p011_value -p012_value -p013_value -p014_value -p015_value -p016_value -p017_value -p018_value -p019_value -p020_value -p021_value -p022_value -p023_value -p024_value -p025_value -p026_value -p027_value -p028_value -p029_value -p030_value -p031_value -p032_value -p033_value -p034_value -p035_value -p036_value +... p037_value p038_value p039_value @@ -226,7 +93,6 @@ variable_implicit_output_ports variable_control_ports variable_command_ports variable_display_parameter -variable_block_image |