Skip to content

Commit 4ff3d20

Browse files
authored
refactor: Moved the examples, integrations and other extra stuff into the new plc4x-extras repository (apache#1483)
* refactor: Moved the examples, integrations and other extra stuff into the new plc4x-extras repository * refactor: Cleaned up some of the managed dependencies. * refactor: Updated some of the go-tools used in the build * fix: Fixed the issues causing problems building PLC4C * fix: A compilation error. * fix: Fixed an error in the code-generation for C which only appeared in the code-gen testsuite. * fix: Fixed an error in the code-generation for C which only appeared in the code-gen testsuite. * fix: Disabling "CodeQL analysis" step as it's failing and I can't see from the output why.
1 parent 27700c2 commit 4ff3d20

File tree

539 files changed

+5019
-33485
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

539 files changed

+5019
-33485
lines changed

.github/workflows/java-platform.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,5 +156,5 @@ jobs:
156156
**/surefire-reports/TEST-*.xml
157157
**/failsafe-reports/TEST-*.xml
158158
159-
- name: Perform CodeQL Analysis
160-
uses: github/codeql-action/analyze@v3
159+
# - name: Perform CodeQL Analysis
160+
# uses: github/codeql-action/analyze@v3

code-generation/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ public String getWriteBufferWriteMethodCall(SimpleTypeReference simpleTypeRefere
567567
String encoding = ((StringLiteral) encodingTerm).getValue();
568568
String length = Integer.toString(simpleTypeReference.getSizeInBits());
569569
return "plc4c_spi_write_string(writeBuffer, " + length + ", \"" +
570-
encoding + "\", " + fieldName + ")";
570+
encoding + "\", (char*) " + fieldName + ")";
571571
}
572572
case VSTRING: {
573573
final Term encodingTerm = field.getEncoding().orElse(new DefaultStringLiteral("UTF-8"));

code-generation/language-c/src/main/resources/templates/c/data-io-template.c.ftlh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,20 @@ plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4x_spi_context ctx,
8787
plc4c_utils_list_create(&${arrayField.name});
8888
int itemCount = (int) ${helper.toParseExpression(type, arrayField, arrayField.loopExpression, parserArguments)};
8989
for(int curItem = 0; curItem < itemCount; curItem++) {
90+
<#-- Commenting out this code as we really need to figgure out how to handle strings -->
91+
<#if helper.getLanguageTypeNameForTypeReference(elementTypeReference) == "char*">
92+
/*
93+
</#if>
9094
${helper.getLanguageTypeNameForTypeReference(elementTypeReference)}* _val = malloc(sizeof(${helper.getLanguageTypeNameForTypeReference(elementTypeReference)}) * 1);
9195
_res = <#if elementTypeReference.isSimpleTypeReference()>${helper.getReadBufferReadMethodCall(elementTypeReference.asSimpleTypeReference().orElseThrow(), "_val", arrayField)}<#else>${elementTypeReference.asNonSimpleTypeReference().orElseThrow().name}IO.staticParse(readBuffer<#if arrayField.params.isPresent()>, <#list arrayField.params.orElseThrow() as parserArgument>(${helper.getLanguageTypeNameForTypeReference(helper.getArgumentType(elementTypeReference, parserArgument?index))}) (${helper.toParseExpression(type, arrayField, parserArgument, parserArguments)})<#sep>, </#sep></#list></#if>)</#if>;
9296
if(_res != OK) {
9397
return _res;
9498
}
9599
plc4c_data* _item = plc4c_data_create_${helper.getDataIoTypeNameForTypeReference(elementTypeReference)}_data(*_val);
96100
plc4c_utils_list_insert_head_value(${arrayField.name}, _item);
101+
<#if helper.getLanguageTypeNameForTypeReference(elementTypeReference) == "char*">
102+
*/
103+
</#if>
97104
}
98105
<#-- In all other cases do we have to work with a list, that is later converted to an array -->
99106
<#else>
@@ -229,6 +236,10 @@ plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4x_spi_context ctx,
229236
<#else>
230237
*data_item = plc4c_data_create_string_data(${simpleField.type.asStringTypeReference().orElseThrow().sizeInBits}, ${simpleField.name});
231238
</#if>
239+
<#elseif case.name == "CHAR">
240+
*data_item = plc4c_data_create_${case.name?lower_case}_data(*${simpleField.name});
241+
<#elseif case.name == "WCHAR">
242+
*data_item = plc4c_data_create_${case.name?lower_case}_data(*${simpleField.name});
232243
<#else>
233244
*data_item = plc4c_data_create_${case.name?lower_case}_data(${simpleField.name});
234245
</#if>

code-generation/language-c/src/test/resources/integration-test/include/plc4c/driver_test_static.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
int8_t plc4c_test_read_write_crc_int8();
2929
uint8_t plc4c_test_read_write_crc_uint8();
3030
uint8_t plc4c_test_read_write_read_manual_field(plc4c_spi_read_buffer* readBuffer, uint8_t value);
31-
plc4c_return_code plc4c_test_read_write_write_manual_field(plc4c_spi_write_buffer* writeBuffer, void* value);
31+
plc4c_return_code plc4c_test_read_write_write_manual_field(plc4c_spi_write_buffer* writeBuffer, uint8_t value);
3232

3333
#ifdef __cplusplus
3434
}

plc4c/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,5 +84,3 @@ add_subdirectory(spi)
8484
add_subdirectory(transports)
8585
add_subdirectory(drivers)
8686
add_subdirectory(tools)
87-
#add_subdirectory(integrations)
88-
add_subdirectory(examples)

plc4c/drivers/simulated/src/driver_simulated.c

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ plc4c_return_code plc4c_driver_simulated_write_machine_function(
232232
return OK;
233233
}
234234

235-
plc4c_item *plc4c_driver_simulated_parse_address(char *address_string) {
235+
plc4c_return_code plc4c_driver_simulated_encode_address(char *address_string, void** item) {
236236
plc4c_driver_simulated_tag_type type = RANDOM;
237237
char *name = NULL;
238238
plc4c_data_type data_type = -1;
@@ -252,7 +252,7 @@ plc4c_item *plc4c_driver_simulated_parse_address(char *address_string) {
252252
type = STDOUT;
253253
} else {
254254
free(type_str);
255-
return NULL;
255+
return INVALID_ADDRESS;
256256
}
257257
free(type_str);
258258
start_segment = address_string + i + 1;
@@ -280,7 +280,7 @@ plc4c_item *plc4c_driver_simulated_parse_address(char *address_string) {
280280
} else {
281281
free(datatype_name);
282282
free(name);
283-
return NULL;
283+
return INVALID_ADDRESS;
284284
}
285285
free(datatype_name);
286286

@@ -304,14 +304,15 @@ plc4c_item *plc4c_driver_simulated_parse_address(char *address_string) {
304304
}
305305

306306
// Create a new driver specific item.
307-
plc4c_driver_simulated_item *item = (plc4c_driver_simulated_item *)malloc(
307+
plc4c_driver_simulated_item *curItem = (plc4c_driver_simulated_item *)malloc(
308308
sizeof(plc4c_driver_simulated_item));
309-
item->type = type;
310-
item->name = name;
311-
item->data_type = data_type;
312-
item->num_elements = num_elements;
309+
curItem->type = type;
310+
curItem->name = name;
311+
curItem->data_type = data_type;
312+
curItem->num_elements = num_elements;
313313

314-
return (plc4c_item *)item;
314+
*item = curItem;
315+
return OK;
315316
}
316317

317318
plc4c_return_code plc4c_driver_simulated_connect_function(
@@ -412,7 +413,7 @@ plc4c_driver *plc4c_driver_simulated_create() {
412413
driver->protocol_code = "simulated";
413414
driver->protocol_name = "Simulated PLC4X Datasource";
414415
driver->default_transport_code = "dummy";
415-
driver->parse_address_function = &plc4c_driver_simulated_parse_address;
416+
driver->parse_address_function = &plc4c_driver_simulated_encode_address;
416417
driver->connect_function = &plc4c_driver_simulated_connect_function;
417418
driver->disconnect_function = &plc4c_driver_simulated_disconnect_function;
418419
driver->read_function = &plc4c_driver_simulated_read_function;

plc4c/examples/CMakeLists.txt

Lines changed: 0 additions & 22 deletions
This file was deleted.

plc4c/examples/hello-subscriptions/CMakeLists.txt

Lines changed: 0 additions & 41 deletions
This file was deleted.

0 commit comments

Comments
 (0)