68 std::map<std::string,Item *>::iterator itNameItem =
nameItemMap.find(registerName);
70 BUException::INVALID_NAME e;
71 e.Append(
"Can't find item with name \"");
72 e.Append(registerName.c_str());
76 Item * item = itNameItem->second;
78 uint32_t buildingVal =0;
79 if(item->
mask != 0xFFFFFFFF){
82 buildingVal &= ~(item->
mask);
84 buildingVal |= (item->
mask & (val << item->
offset));
89 std::map<std::string,Item *>::iterator itNameItem =
nameItemMap.find(registerName);
91 BUException::INVALID_NAME e;
92 e.Append(
"Can't find item with name \"");
93 e.Append(registerName.c_str());
97 Item * item = itNameItem->second;
99 uint32_t buildingVal =0;
100 if(item->
mask != 0xFFFFFFFF){
102 buildingVal =
io->ReadWithRetry(item->
address);
103 buildingVal &= ~(item->
mask);
105 buildingVal |= (item->
mask & (val << item->
offset));
106 io->WriteWithRetry(item->
address,buildingVal);
114 std::map<std::string,Item *>::iterator itNameItem =
nameItemMap.find(registerName);
116 BUException::INVALID_NAME e;
117 e.Append(
"Can't find item with name \"");
118 e.Append(registerName.c_str());
122 Item * item = itNameItem->second;
124 if(item->
mask != 0xFFFFFFFF){
125 BUException::BAD_BLOCK_WRITE e;
126 e.Append(
"Mask is not 0xFFFFFFFF\n");
129 io->Write(item->
address,values,word_count);