小编Sum*_*Roy的帖子

枚举元素不能作为实例成员引用

我正在使用Moya创建一个API层,并.updateMyWeightGoal在创建端点请求时不断为目标获取上述错误.

    goalAPI.request(target:  .updateMyWeightGoal(weightGoalData: goalInfo),  success: { (response) in
        //
    }){ (response: [String : Any]) in
        print(response)
    }
Run Code Online (Sandbox Code Playgroud)

我已经创建了另一个相同类型的Moya API,并使用相同的方式调用它goalAPI,它工作正常.

可能导致此问题的任何想法

这里参考的是weightGoalData类型的类定义

class UpdatedWeightGoalInfo: Mappable {

var consumerUserID: Int?
var height: String?
var weight: String?
var goalWeight: String?

init() {

}

convenience init(userId: Int, weightGoalData: WeightGoalResponse) {
    self.init()
    consumerUserID = userId
    height = "\(weightGoalData.currentHeight)"
    weight = "\(weightGoalData.currentWeight)"
    goalWeight = "\(weightGoalData.goalWeight)"
}

required init?(map: Map) {
}

func mapping(map: Map) {
    consumerUserID <- map["consumerUserId"]
    height <- …
Run Code Online (Sandbox Code Playgroud)

enums ios swift objectmapper moya

11
推荐指数
2
解决办法
6749
查看次数

如何在跨文件预处理时获取唯一值

问题

我需要一种使用预处理器指令生成唯一值的方法.目的是每次调用宏时,它将具有唯一的整数标识符.但它应该保留它跨文件的价值.有点像预处理器计数器,用于调用函数的次数.

进一步的信息

我正在使用的宏是:

#define LOG_MSG(a) log_msg(?)
Run Code Online (Sandbox Code Playgroud)
  1. 'a'是用户想要打印的字符串.
  2. log_msg是一个用于在UART上打印消息的自定义函数
  3. '?' 如果我需要帮助的部分.

该宏仅在一个地方定义.在预处理阶段,'?' 将被唯一标识符替换.我们这样做是为了减少字符串带来的开销,因为此代码将在嵌入式设备上运行.在预处理之后,将提取标识符和相关字符串,并且将创建将映射它们的表(这将在应用程序侧).

由于这将用于多个文件,我想要一种方法来为多个文件中的每次使用生成唯一标识符(整数而不是字符串)(每个唯一字符串的标识符将是理想的但不是必需的).

有任何想法吗?

如果有任何遗漏或不完整的信息,请提及

笔记

__COUNTER__这是我尝试的第一件事,但它并不适用于文件.
__FILE__会给我一个破坏目的的字符串.

有人提到使用唯一文件标识符.但我不想静态分配这些.我们正在使用CCS(它基于Eclipse Kepler构建)来构建此代码.所以我想我们可以在构建系统中添加一些内容来执行@embedded_guy所提到的内容.谁知道怎么做?

谢谢

c embedded macros c-preprocessor

6
推荐指数
2
解决办法
1285
查看次数

无法将大缓冲区写入EEPROM

我正在尝试将M95M02-DR 256KB EEPROM存储器芯片与MSP430微控制器连接.作为示例测试,我尝试将以下字符串写入其中:

第一章.兔子洞.爱丽丝开始厌倦了坐在银行的姐姐身边,

当我尝试从芯片中读取数据时,这就是我得到的:

第一章.兔子洞.爱丽丝开始厌倦了坐在姐姐身边的b ?????

?是垃圾数据.问题是,如果我将字符串的大小减少几个字符,那么就没有问题了.以前我曾尝试从SD卡上的文件中读取数据,并以256字节块写入EEPROM芯片.在这种情况下没有写任何东西.但是当我逐字节执行相同的操作时,没有问题.

这是我正在使用的代码

  static uint32_t i=0x025698;

  static unsigned char message[120] = "CHAPTER I. Down the Rabbit-Hole."\
  "Alice was beginning to get very tired of sitting by her sister on the bank, "; 

  static int size ;

  unsigned char input[120];

  size = strlen(message);

  eeprom_spi_init();
  eeprom_write( i ,message,size);

  __delay_cycles(2500);

  eeprom_read( i, input,size);

  input[size]='\0';

  ax_log_msg(E_LOG_INFO,input);  //print command
Run Code Online (Sandbox Code Playgroud)

低级SPI函数如下:

  void eeprom_write(uint32_t ui_addr, uint8_t *puc_wrData, uint8_t ui_dataLen)
  {

    uint8_t uac_wrBuf[260] = {0x00,};
    uint8_t i = 0;

    EEPROM_wrEnable();

    uac_wrBuf[i++] = …
Run Code Online (Sandbox Code Playgroud)

memory embedded msp430 eeprom

2
推荐指数
1
解决办法
1096
查看次数

标签 统计

embedded ×2

c ×1

c-preprocessor ×1

eeprom ×1

enums ×1

ios ×1

macros ×1

memory ×1

moya ×1

msp430 ×1

objectmapper ×1

swift ×1