Merge pull request #83 from ardovm/master
C99 compliance and compilation warnings
| | |
| | | union { |
| | | double value; |
| | | int32_t tag; |
| | | }; |
| | | } content; |
| | | scpi_unit_t unit; |
| | | int8_t base; |
| | | }; |
| | |
| | | #if USE_DEVICE_DEPENDENT_ERROR_INFORMATION |
| | | #define SCPI_ERROR_SETVAL(e, c, i) do { (e)->error_code = (c); (e)->device_dependent_info = (i); } while(0) |
| | | #else |
| | | #define SCPI_ERROR_SETVAL(e, c, i) do { (e)->error_code = (c); } while(0) |
| | | #define SCPI_ERROR_SETVAL(e, c, i) do { (e)->error_code = (c); (void)(i);} while(0) |
| | | #endif |
| | | |
| | | /** |
| | |
| | | return FALSE; |
| | | } |
| | | |
| | | value->value *= unitDef->mult; |
| | | value->content.value *= unitDef->mult; |
| | | value->unit = unitDef->unit; |
| | | |
| | | return TRUE; |
| | |
| | | |
| | | switch (param.type) { |
| | | case SCPI_TOKEN_DECIMAL_NUMERIC_PROGRAM_DATA: |
| | | SCPI_ParamToDouble(context, ¶m, &(value->value)); |
| | | SCPI_ParamToDouble(context, ¶m, &(value->content.value)); |
| | | break; |
| | | case SCPI_TOKEN_HEXNUM: |
| | | SCPI_ParamToDouble(context, ¶m, &(value->value)); |
| | | SCPI_ParamToDouble(context, ¶m, &(value->content.value)); |
| | | break; |
| | | case SCPI_TOKEN_OCTNUM: |
| | | SCPI_ParamToDouble(context, ¶m, &(value->value)); |
| | | SCPI_ParamToDouble(context, ¶m, &(value->content.value)); |
| | | break; |
| | | case SCPI_TOKEN_BINNUM: |
| | | SCPI_ParamToDouble(context, ¶m, &(value->value)); |
| | | SCPI_ParamToDouble(context, ¶m, &(value->content.value)); |
| | | break; |
| | | case SCPI_TOKEN_DECIMAL_NUMERIC_PROGRAM_DATA_WITH_SUFFIX: |
| | | scpiLex_DecimalNumericProgramData(&state, &token); |
| | | scpiLex_WhiteSpace(&state, &token); |
| | | scpiLex_SuffixProgramData(&state, &token); |
| | | |
| | | SCPI_ParamToDouble(context, ¶m, &(value->value)); |
| | | SCPI_ParamToDouble(context, ¶m, &(value->content.value)); |
| | | |
| | | result = transformNumber(context, token.ptr, token.len, value); |
| | | break; |
| | |
| | | result = SCPI_ParamToChoice(context, &token, special, &tag); |
| | | |
| | | value->special = TRUE; |
| | | value->tag = tag; |
| | | value->content.tag = tag; |
| | | |
| | | break; |
| | | default: |
| | |
| | | } |
| | | |
| | | if (value->special) { |
| | | if (SCPI_ChoiceToName(special, value->tag, &type)) { |
| | | if (SCPI_ChoiceToName(special, value->content.tag, &type)) { |
| | | strncpy(str, type, len); |
| | | result = SCPIDEFINE_strnlen(str, len - 1); |
| | | str[result] = '\0'; |
| | |
| | | } |
| | | } |
| | | |
| | | result = SCPI_DoubleToStr(value->value, str, len); |
| | | result = SCPI_DoubleToStr(value->content.value, str, len); |
| | | |
| | | if (result + 1 < len) { |
| | | unit = translateUnitInverse(context->units, value->unit); |
| | |
| | | CU_ASSERT_EQUAL(result, expected_result); \ |
| | | if (expected_result) { \ |
| | | CU_ASSERT_EQUAL(value.special, expected_special); \ |
| | | if (value.special) CU_ASSERT_EQUAL(value.tag, expected_tag); \ |
| | | if (!value.special) CU_ASSERT_DOUBLE_EQUAL(value.value, expected_value, 0.000001);\ |
| | | if (value.special) CU_ASSERT_EQUAL(value.content.tag, expected_tag); \ |
| | | if (!value.special) CU_ASSERT_DOUBLE_EQUAL(value.content.value, expected_value, 0.000001);\ |
| | | CU_ASSERT_EQUAL(value.unit, expected_unit); \ |
| | | CU_ASSERT_EQUAL(value.base, expected_base); \ |
| | | } \ |
| | |
| | | number.base = 10;\ |
| | | number.special = (_special);\ |
| | | number.unit = (_unit);\ |
| | | if (number.special) { number.tag = (int)(_value); } else { number.value = (_value); }\ |
| | | if (number.special) { number.content.tag = (int)(_value); } else { number.content.value = (_value); }\ |
| | | char buffer[100 + 1];\ |
| | | size_t res_len;\ |
| | | res_len = SCPI_NumberToStr(&scpi_context, scpi_special_numbers_def, &number, buffer, 100);\ |
| | |
| | | number.base = 10;\ |
| | | number.special = (_special);\ |
| | | number.unit = (_unit);\ |
| | | if (number.special) { number.tag = (int)(_value); } else { number.value = (_value); }\ |
| | | if (number.special) { number.content.tag = (int)(_value); } else { number.content.value = (_value); }\ |
| | | char buffer[100];\ |
| | | memset(buffer, 0xaa, 100);\ |
| | | size_t res_len;\ |