Added support for handling various payload types, including GPS and alarms, with new structures and constants. Introduced helper methods for JSON marshalling/unmarshalling of GPS data and modularized the handling of certificates, configurations, and alarms. Implemented foundational server code for testing and expanded several package functionalities.
191 lines
4.5 KiB
Go
191 lines
4.5 KiB
Go
package n9m
|
|
|
|
// 3.4.1.3
|
|
type EventModelGetAlarmStatusInfoResponse struct {
|
|
ErrorCode uint `json:"ERRORCODE"`
|
|
ErrorCause string `json:"ERRORCAUSE"`
|
|
StorageErrors []StorageErrorStatus `json:"ST"`
|
|
AnotherStorageErrors []AnotherStorageErrorStatus `json:"VS"`
|
|
VideoLossErrors []VideoLossErrorStatus `json:"VL"`
|
|
GPSError GPSErrorStatus `json:"GFA"`
|
|
GPSAntennaError GPSAntennaErrorStatus `json:"GPSS"`
|
|
}
|
|
|
|
// 3.4.1.4.21
|
|
type StorageErrorStatus struct {
|
|
CameraCovered uint `json:"ISA"`
|
|
ChannelBind uint `json:"LHC"`
|
|
}
|
|
|
|
// 3.4.1.4.4
|
|
type AnotherStorageErrorStatus struct {
|
|
}
|
|
|
|
// 3.4.1.4.5
|
|
type VideoLossErrorStatus struct {
|
|
}
|
|
|
|
// 3.4.1.4.44
|
|
type GPSErrorStatus struct {
|
|
}
|
|
|
|
// 3.4.1.4.46
|
|
type GPSAntennaErrorStatus struct {
|
|
}
|
|
|
|
// 3.4.1.5
|
|
// Alarm upload
|
|
type SendAlarmInfoParameters struct {
|
|
AlarmType AlarmType `json:"ALARMTYPE"`
|
|
CommandType uint `json:"CMDTYPE"`
|
|
AlarmUID uint `json:"ALARMUID"`
|
|
NumberOfRestarts uint `json:"RUN"`
|
|
AlarmLevel AlarmLevel `json:"ALARMAS"`
|
|
AlarmCount uint `json:"ALARMCOUNT"`
|
|
TriggerType TriggerType `json:"TRIGGERTYPE"`
|
|
ContinueTime uint `json:"CONTINUETIME"`
|
|
CurrentTime uint `json:"CURRENTTIME"`
|
|
Language Language `json:"L"`
|
|
GPSData GPSData `json:"P"`
|
|
RealTimeUpload uint `json:"REAL"`
|
|
InstructionSerial uint `json:"CMDNO"`
|
|
}
|
|
|
|
// 3.4.1.5
|
|
// Alarm upload
|
|
type SendAlarmInfoResponse struct {
|
|
ErrorCode uint `json:"ERRORCODE"`
|
|
AlarmType AlarmType `json:"ALARMTYPE"`
|
|
ErrorCause string `json:"ERRORCAUSE"`
|
|
CommandType uint `json:"CMDTYPE"`
|
|
AlarmUID uint `json:"ALARMUID"`
|
|
NumberOfRestarts uint `json:"RUN"`
|
|
InstructionSerial uint `json:"CMDNO"`
|
|
}
|
|
|
|
// 3.4.1.5.1
|
|
type SendAlarmInfoCameraParameters struct {
|
|
SendAlarmInfoParameters
|
|
|
|
Channel uint `json:"CHANNEL"`
|
|
ChannelMask uint `json:"CHANNELMASK"`
|
|
LCH []uint `json:"LCH"`
|
|
Push uint `json:"PUSH"`
|
|
AlarmName string `json:"ALARMNAME"`
|
|
AlarmAbbreviation string `json:"SER"`
|
|
}
|
|
|
|
type AlarmType uint
|
|
|
|
const (
|
|
AlarmTypeVideoLoss AlarmType = iota
|
|
AlarmTypeCameraCovered
|
|
AlarmTypeMotionDetection
|
|
AlarmTypeStorageAbnormal
|
|
AlarmTypeUserDefined
|
|
AlarmTypeSentriesInspection
|
|
AlarmTypeViolation
|
|
AlarmTypeEmergency
|
|
AlarmTypeSpeedAlarm
|
|
AlarmTypeLowVoltage
|
|
AlarmTypeOutOfFence = iota + 7
|
|
AlarmTypeAccAlarm
|
|
AlarmTypePeripheralsDropped
|
|
AlarmTypeStopAnnouncement
|
|
AlarmTypeGpsAntenna
|
|
AlarmTypeDayNightSwitch
|
|
AlarmTypeProhibitDriving
|
|
AlarmTypeSerialAlarm = iota + 15
|
|
AlarmTypeFatigueAlarm
|
|
AlarmTypeTakeOutParking
|
|
AlarmTypeGestureAlarm
|
|
AlarmTypeGreenDriving
|
|
AlarmTypeIllegalIgnition
|
|
AlarmTypeIllegalShutdown
|
|
AlarmTypeCustomExternal
|
|
AlarmTypeThinkingLKJ
|
|
AlarmTypeTAX3
|
|
AlarmTypeOilAlarm
|
|
AlarmTypeBusLineOccupation
|
|
AlarmTypeForgottenAlarm
|
|
AlarmTypeSpecialCustomerFault
|
|
AlarmTypeTemperatureAbnormal
|
|
AlarmTypeTemperatureChangeAbnormal
|
|
AlarmTypeSmokeAlarm
|
|
AlarmTypeGBox
|
|
AlarmTypeLicensePlateRecognition
|
|
AlarmTypeAnotherSpeedAlarm
|
|
AlarmTypeWirelessSignalAbnormal
|
|
AlarmTypeArming
|
|
AlarmTypePhoneCall
|
|
AlarmTypeGPSFault
|
|
AlarmTypeDSMFault
|
|
AlarmTypeFireBox
|
|
)
|
|
|
|
type AlarmLevel uint
|
|
|
|
const (
|
|
AlarmLevelImportant AlarmLevel = iota
|
|
AlarmLevelGeneral
|
|
AlarmLevelEmergency
|
|
)
|
|
|
|
type TriggerType uint
|
|
|
|
const (
|
|
TriggerTypeManual TriggerType = iota
|
|
TriggerTypeAutomatic
|
|
)
|
|
|
|
type Language uint
|
|
|
|
const (
|
|
LanguageSimplifiedChinese Language = iota
|
|
LanguageEnglish
|
|
LanguageKorean
|
|
LanguageItalian
|
|
LanguageGerman
|
|
LanguageThai
|
|
LanguageTurkey
|
|
LanguagePortugal
|
|
LanguageSpain
|
|
LanguageRomania
|
|
LanguageGreece
|
|
LanguageFrench
|
|
LanguageRussian
|
|
LanguageDutch
|
|
LanguageHebrew
|
|
LanguageChineseTraditional
|
|
)
|
|
|
|
type EventModelGetAlarmingResponse struct {
|
|
CameraCoveredChannelMask uint `json:"VS_CH"`
|
|
CameraCoveredAlarmMask uint `json:"VS_AT"`
|
|
CameraCoveredStatusMask uint `json:"VS_AS"`
|
|
|
|
VideoLossChannelMask uint `json:"VL_CH"`
|
|
VideoLossAlarmMask uint `json:"VL_AT"`
|
|
VideoLossStatusMask uint `json:"VL_AS"`
|
|
}
|
|
|
|
/*
|
|
// main server util
|
|
func (e *Package) ResponseAlarm(alarmType int64, alarmUID int64, cmdno int64, cmdtype int64, run int64, serial string, Sid string) {
|
|
e.Payload = map[string]any{
|
|
"MODULE": "EVEM",
|
|
"OPERATION": "SENDALARMINFO",
|
|
"RESPONSE": map[string]any{
|
|
"ALARMTYPE": alarmType,
|
|
"ALARMUID": alarmUID,
|
|
"CMDNO": cmdno,
|
|
"CMDTYPE": cmdtype,
|
|
"ERRORCODE": 0,
|
|
"RUN": run,
|
|
},
|
|
"SESSION": Sid,
|
|
}
|
|
}
|
|
|
|
*/
|