| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // MIT License
- // Copyright(c) 2024 FastWeb - fwlua.com - nianhua
- // Permission is hereby granted, free of charge, to any person obtaining a copy
- // of this software and associated documentation files(the "Software"), to deal
- // in the Software without restriction, including without limitation the rights
- // to use, copy, modify, merge, publish, distribute, sublicense, and /or sell
- // copies of the Software, and to permit persons to whom the Software is
- // furnished to do so, subject to the following conditions :
- // The above copyright notice and this permission notice shall be included in all
- // copies or substantial portions of the Software.
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- // SOFTWARE.
- // ## Additional Terms for Commercial Use
- // This software is licensed for personal, educational, and non - commercial use.
- // For commercial use or use within a company, organization, or institution, a
- // separate commercial license is required.To obtain a commercial license,
- // please contact
- // EMail:1585346868@qq.com
- // Mobile:17367918735
- // QQ:1585346868
- #include "slave.h"
- #include "util/system.h"
- slave::slave(const std::string& name,int flag):m_flag(flag)
- {
- m_sm = std::make_unique<ylib::sharedmem>(false);
- if (m_sm->create(name, 128 * 2) == false)
- {
- std::cerr << m_sm->last_error() << std::endl;
- abort();
- }
- }
- slave::~slave()
- {
- m_sm->destory();
- }
- void slave::wait()
- {
- while ((*m_sm)[m_flag] == 0)
- system::sleep_msec(10);
- }
- void slave::write(uchar data)
- {
- ((char*)m_sm->mem())[m_flag+128] = data;
- }
|