summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSunil Shetye2020-09-11 00:54:54 +0530
committerSunil Shetye2021-04-11 21:23:03 +0530
commit289ccfa00294a5c2741d92c39ee45ea059b5d61d (patch)
treec193973a5b780bcc8df29a0b9a5fd86385613681
parent3f314832db3d69607bc7c7fbe3683739d4a8e1a3 (diff)
downloadCommon-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.sci20
-rw-r--r--blocks/blocks/xcosblocks/serializers.py154
-rw-r--r--blocks/blocks/xcosblocks/urls.py7
-rw-r--r--blocks/blocks/xcosblocks/views.py17
-rw-r--r--docs/api.txt140
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