Учет и контроль реализации обработки информации на примере ООО "ЭККО-РОС"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
r::Exit(frameLock);
}
CameraDisconnect();
m_VideoWriter.StopVideo();
#if SONAR_ENABLED
m_SonarDataWriter.StopSonarLogFileWriting();
#endif
//Save the statistics
Monitor::Enter(this);
StatisticsThread ^stats = gcnew StatisticsThread;
stats->SetDayStatistics(dayReport->ToString(), dayReportOut->ToString(), currentDay);
stats->m_camIndex = m_CamIdx;
stats->SaveStatisticsMethod();
Monitor::Exit(this);
} WorkingThread::StopWorking()
{
m_isTimeToExit = true;
try
{
if (statisticsServer != nullptr)
{
statisticsServer->StopWorking();
}
}
catch(Exception^ e)
{
Log::UpdateDevLog("Error: cant stop statistics server. " + e->Message);
}
m_SystemStateObserver.SystemStop(m_CamIdx); //WARNING: do not exchange these lines
Utilities::stopWorking = true; //we cant send email if Utilities::stopWorking = true
}WorkingThread::SavePCountDistribution(const PCountParams ¶ms) //сохраняет настройки системы
{
//Check settings file exists
if (!File::Exists(PeopleCounterService::MyResources::GetString("SettingsFile")))
{
return false;
}
//Load xml file with all parameters
//TODO: try/catch
String ^settingsString = File::ReadAllText(PeopleCounterService::MyResources::GetString("SettingsFile"));
//File can not be empty
if (String::IsNullOrEmpty(settingsString))
{
//TODO: possibly, show some message box here?
return false;
}
XmlDocument ^xml = gcnew XmlDocument();
xml->LoadXml(settingsString);
InnerText=params.max_obj_flow.ToString(CultureManager::GetCultureOfXml());">xml["CounterParameters"]["MaxObjFlow"]->InnerText = params.max_obj_flow.ToString(CultureManager::GetCultureOfXml());
//TODO: try/catch
//xml->PreserveWhitespace = true;
//File::WriteAllText(PeopleCounterService::MyResources::GetString("SettingsFile"), xml->OuterXml);
xml->Save(PeopleCounterService::MyResources::GetString("SettingsFile"));
return true;
}^WorkingThread::GetDayStatisticsMethod(DateTime ^%currentDate, bool outgoing) // получить статистику за день
{
Monitor::Enter(this);
String ^result = (outgoing)?(dayReportOut->ToString()):(dayReport->ToString());
currentDate = currentDay;
Monitor::Exit(this);
return result;
} ^WorkingThread::GetCurrentCameraImage(int width, int height) //получить текущее изобр с камеры
{::Enter(frameLock);(m_IplFrame != NULL)
{
array ^pixels = PackImage(m_IplFrame, width, height);
Monitor::Exit(frameLock);
return pixels;
}
Monitor::Exit(frameLock);
return nullptr;
}WorkingThread::CameraConnect()
{
bool isConnected = false;(!isConnected && !IsDieTime())
{
if (isConnected = m_Camera->Connect())
{
printf("#%d Cam connection succeeded.\n", m_CamIdx);_SystemStateObserver.ReportCamConnection(LoggingRecord::CONNECTION_ESTABLISHED, m_CamIdx);
}
else
{
printf("#%d Cam connection failed.\n", m_CamIdx);_SystemStateObserver.ReportCamConnection(LoggingRecord::CONNECTION_LOST, m_CamIdx);
}
System::Threading::Thread::Sleep(1000);
}
}WorkingThread::CameraDisconnect()
{
m_Camera->Disconnect();
printf("#%d Cam connection closed.\n", m_CamIdx);
}WorkingThread::CameraReconnect()
{
CameraDisconnect();
CameraConnect();
}WorkingThread::CameraGetNextFrame()
{
m_IplFrame = m_Camera->GetFrame();
if (!m_IplFrame)
{//reconnect to camera
printf("#%d FAILED to get new frame.\n", m_CamIdx);
Monitor::Exit(frameLock);_SystemStateObserver.ReportCamConnection(LoggingRecord::CONNECTION_LOST, m_CamIdx);
CameraReconnect();
return false;
}
else
{
return true;
}
}WorkingThread::InitializeCounters(bool isSwitched)
{
m_lastCount = 0;
m_lastCountOut = 0;
m_count1 = new int;
m_count2 = new int;
if (!isSwitched)
{
m_currentCount = m_count1;
m_currentCountOut = m_count2;
}
else
{
m_currentCount = m_count2;
m_currentCountOut = m_count1;
}
}WorkingThread::ShowFrameInTestWindow()
{
if (m_IsTest)
{
if (m_CamIdx == Value)
{
if (Value != ValuePrev)
{
cvDestroyAllWindows();//Window(WinName);
cvNamedWindow(WinName);
cvSetMouseCallback(WinName, OnMouse);
ValuePrev = Value;
}
cvShowImage(WinName, m_IplFrame);
cvWaitKey(1);
}
}
}WorkingThread::ShowCountersInTestConsole(int fps)
{
if (m_IsTest)
{
if (m_CamIdx == Value)
{
printf("#%d\tIN=%d\tOUT=%d\tFPS=%d\n", m_CamIdx+1, *m_currentCount, *m_currentCountOut, fps);
}
}
}WorkingThread::InitializeTestWindow()
{
if (m_IsTest)
{
if (m_CamIdx == INITIALCAMIDX)
{
cvDestroyAllWindows();
cvNamedWindow(WinName);
cvSetMouseCallback(WinName, OnMouse);
MaxEntrances = Utilities::GetNumberOfEntrances();
}
}
}
Программа Учет и контроль реализации обслуживания ПК
Назначение. Программа обеспечивает решение задачи Учет и анализ посещаемости торговых центров, а именно решение таких задач как:
Подiет количества вошедших посетителей за период.
Подiет количества вышедших посетителей за период.
Раiет процеителя.
Сравнение посещаемости за выбранные периоды.
По умолчанию все результаты работы программы выводятся на экране, по запросу на печать.
Условия применения
тактовая частота процессора - 1500Mhz;
объем видеопамяти - 16 Mb;
видеокамера подключенная к ПЭВМ;
объем оперативной памяти - 512 Mb;
объем свободного дискового пространства - 2000 Mb;
Требования к внешним программным средствам:
32-х или 64-х разрядная операционная среда - Microsoft Windows XP и выше;
Условия хранения программы:
программа может храниться на магнитных и оптических носителях информации.
Краткое описание функционала
Рисунок 40(2)
Предназначен для первоначальной настройки програмного комплекса vCount
Идентификатор магазина
Предполагается, что каждый магазин имеет уникальный идентификатор, который будет использоваться при формировании ежедневного отчета, отсылаемого по электронной почте в центральный офис
Время работы магазина
Предусмотрена возможность указывать интервал работы системы. Это сделано для того, чтобы не перегружать систему в нерабочее время или не производить подiет персонала после закрытия магазина, который может сильно влиять на истинную статистику. Если подiет должен производиться без перерыва, то нужно поставить галочку Круглосуточно
Настройка отчетов
Отчеты содержат информацию о времени каждого прохода. Отчеты могут автоматически отправляться по электронной почте на любое количество электронных адресов и копироваться в выбранную папку
Способы доставки
Отправка отчетов по электронной почт
Copyright © 2008-2014 studsell.com рубрикатор по предметам рубрикатор по типам работ пользовательское соглашение